Python 单独列出;“字母编号”;(国际象棋位置)放入单独的列表中
我只是想知道是否有一种更像蟒蛇的方式来完成以下任务:Python 单独列出;“字母编号”;(国际象棋位置)放入单独的列表中,python,list,Python,List,我只是想知道是否有一种更像蟒蛇的方式来完成以下任务: 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,但是我不知道如何在这种情况下应用这个函数。 如有任何建议,我将不胜感
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,但是我不知道如何在这种情况下应用这个函数。
如有任何建议,我将不胜感激。谢谢大家! 一个较短但仍然有两个列表的解决方案是
x,y=[p[0]表示p在典当中,[p[1]表示p在典当中]
。然而,它确实感觉应该有一些更少冗余的东西。这也会扫描集合两次。编辑:sberry的zip(*pawns)
更短,性能更好,非常地道。忘记那个了。一个较短但仍然有两个列表的解决方案是x,y=[p[0]表示p在典当中,[p[1]表示p在典当中]
。然而,它确实感觉应该有一些更少冗余的东西。这也会扫描集合两次。编辑:sberry的zip(*pawns)
更短,性能更好,非常地道。忘记那个了。问题是如何将字符串列表转换为两个序列,而不是成对序列。您不需要将记录的元素映射到列表
sstr
s是可编辑的,因此将用作zip
的参数。谢谢!请问“*”在这种情况下有什么作用?谢谢*
扩展了参数序列,因此,zip将所有集合元素作为单个参数获取,而不是一个参数集。这就是为什么它一次将它们全部压缩在一起。问题是如何将字符串列表转换为两个序列,而不是成对序列。您不需要将记录的元素映射到列表
sstr
s是可编辑的,因此将用作zip
的参数。谢谢!请问“*”在这种情况下有什么作用?谢谢*
扩展了参数序列,因此,zip将所有集合元素作为单个参数获取,而不是一个参数集。这就是为什么它能一次将它们拉到一起。谢谢,是的,这样可能会更容易。我正试图写一个函数来确定棋盘上的棋子是否安全。字母a数字分别为电路板的列和行。如果另一个棋子斜放在棋子后面,则棋子是安全的。甚至可能是一本字典?谢谢,是的,这样可能会更容易。我正试图写一个函数来确定棋盘上的棋子是否安全。字母a数字分别为电路板的列和行。如果另一个棋子斜放在棋子后面,则棋子是安全的。甚至一本字典?
>>> 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')