只是想知道是否有更多的pythonic方法来完成以下任务:
def safe_pawns(pawns):
x = []
y = []
for i in pawns:
x += i[0]
y += i[1]
输入将始终采用({“b4”,“d4”,“f4”,“c3”,“e3”,“g5”,“d2”})的形式。阿尔法第一,数字第二。 我查看了python文档和最接近我能找到的是zip,但是我无法解决如何在这种情况下应用此功能。 非常感谢任何建议。谢谢!
答案 0 :(得分:4)
>>> records = {"b4", "d4", "f4", "c3", "e3", "g5", "d2"}
>>> x, y = zip(*records)
>>> x
('g', 'f', 'b', 'c', 'd', 'd', 'e')
>>> y
('5', '4', '4', '3', '4', '2', '3')
答案 1 :(得分:3)
一个较短但仍以两个列表结尾的解决方案是x, y = [p[0] for p in pawns], [p[1] for p in pawns]
。但是,它确实感觉应该有一些冗余度较低的东西。这也扫描了两次。编辑:sberry' s zip(*pawns)
更短,表现更好,非常惯用。忘了那个。