Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 单独列出;“字母编号”;(国际象棋位置)放入单独的列表中_Python_List - Fatal编程技术网

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)
更短,性能更好,非常地道。忘记那个了。

问题是如何将字符串列表转换为两个序列,而不是成对序列。您不需要将
记录的元素映射到
列表
s
str
s是可编辑的,因此将用作
zip
的参数。谢谢!请问“*”在这种情况下有什么作用?谢谢
*
扩展了参数序列,因此,
zip将所有集合元素作为单个参数获取,而不是一个参数集。这就是为什么它一次将它们全部压缩在一起。问题是如何将字符串列表转换为两个序列,而不是成对序列。您不需要将
记录的元素映射到
列表
s
str
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')