如何在python中加入map的值

cMi*_*nor 6 python string list

我有一张地图,如:

0,15
1,14
2,0
3,1
4,12
5,6
6,4
7,2
8,8
9,13
10,3
11,7
12,9
13,10
14,11
15,5
Run Code Online (Sandbox Code Playgroud)

打印我正在做的事情

def PrintValuesArray(su_array):
    for each in su_array:
        print ",".join(map(str, each))
Run Code Online (Sandbox Code Playgroud)

但是我只希望值和逗号分隔,如:

我试过了

def PrintSuffixArray(su_array):
    for key, value in su_array:
        print ",".join(map(str, value))
Run Code Online (Sandbox Code Playgroud)

但得到

打印 ",".join(map(str, value)) 类型错误:map() 的参数 2 必须支持迭代

并且

def PrintSuffixArray(su_array):
    for key, value in su_array:
        print ",".join(map(str, value in su_array))
Run Code Online (Sandbox Code Playgroud)

打印 ",".join(map(str, value in su_array)) 类型错误:map() 的参数 2 必须支持迭代

如何打印结果如

15, 14, 0, 1, 12, 6, 4, 2, 8, 13, 3, 7, 9, 10, 11, 5
Run Code Online (Sandbox Code Playgroud)

alv*_*vas 6

首先,遍历列表并仅获取第二个元素(您可以使用列表理解进行速记)。然后用于",".join(list)获取所需的输出,请参阅http://docs.python.org/2/library/string.html#string.join:

>>> original = """0,15
... 1,14
... 2,0
... 3,1
... 4,12
... 5,6
... 6,4
... 7,2
... 8,8
... 9,13
... 10,3
... 11,7
... 12,9
... 13,10
... 14,11
... 15,5"""
>>> 
>>> print [i.split(",")[1] for i in original.split("\n")]
['15', '14', '0', '1', '12', '6', '4', '2', '8', '13', '3', '7', '9', '10', '11', '5']
>>> print ",".join([i.split(",")[1] for i in original.split("\n")])
15,14,0,1,12,6,4,2,8,13,3,7,9,10,11,5
Run Code Online (Sandbox Code Playgroud)

或者如果你有它们在元组中:

>>> original = """0,15
... 1,14
... 2,0
... 3,1
... 4,12
... 5,6
... 6,4
... 7,2
... 8,8
... 9,13
... 10,3
... 11,7
... 12,9
... 13,10
... 14,11
... 15,5"""
>>>
>>> original_tuples = [tuple(i.split(",")) for i in original.split("\n")]
>>> original_tuples
[('0', '15'), ('1', '14'), ('2', '0'), ('3', '1'), ('4', '12'), ('5', '6'), ('6', '4'), ('7', '2'), ('8', '8'), ('9', '13'), ('10', '3'), ('11', '7'), ('12', '9'), ('13', '10'), ('14', '11'), ('15', '5')]
>>> ",".join(map(str,[j for i,j in original_tuples]))
'15,14,0,1,12,6,4,2,8,13,3,7,9,10,11,5'
Run Code Online (Sandbox Code Playgroud)

或者,您可以跳过map(str,list)列表理解中的元素并将其转换为字符串

>>> ",".join(str(j) for i,j in original_tuples)
'15,14,0,1,12,6,4,2,8,13,3,7,9,10,11,5'
Run Code Online (Sandbox Code Playgroud)