在Python中加入不同类型的项目列表作为字符串

AKM*_*AKM 255 python string list

我需要加入一个项目列表.列表中的许多项是从函数返回的整数值.即:

myList.append(munfunc()) 
Run Code Online (Sandbox Code Playgroud)

我应该如何将返回的结果转换为字符串,以便将其与列表连接?

我是否需要为每个整数值执行以下操作:

myList.append(str(myfunc()))
Run Code Online (Sandbox Code Playgroud)

是否有更多的Pythonic方法来解决铸造问题?

Mar*_*ers 480

调用str(...)是将事物转换为字符串的Pythonic方法.

您可能想要考虑为什么需要字符串列表.你可以改为保持其作为一个整数列表,只有整数转换为字符串时,你需要显示它们.例如,如果您有一个整数列表,那么您可以这样做:

print ', '.join(str(x) for x in list_of_ints)
Run Code Online (Sandbox Code Playgroud)

  • `str(x) for x in list_of_ints)` 比 `map(str, list_of_ints)` 慢 40% (14认同)

all*_*ode 143

我不太确定你的意思是"加入",因为你在问题中使用的语法非常糟糕,但如果我正确地理解了你的问题,那么将整数传递给str是没有错的.您可能不这样做的一个原因是myList实际上应该是一个整数列表,例如,对列表中的值求和是合理的.在这种情况下,在将它们附加到myList之前不要将你的int传递给str.如果在追加之前最终没有转换为字符串,可以通过执行类似的操作来构造一个大字符串

', '.join(map(str, myList))
Run Code Online (Sandbox Code Playgroud)

  • 据推测,英语不是他的母语.你不确定他是否愿意加入他将转换为`str`的​​项目列表?请考虑您需要为解析器添加一些模糊逻辑的可能性;-) (36认同)
  • @John我考虑过这一点,但如果他擅长英语,我想轻轻地推动他将英语水平提高到正常水平.我认为我的答案确实可以解释他可能会遇到的各种解释和情况. (3认同)

Pra*_*h N 39

可以使用python中的map函数.它需要两个参数.第一个参数是必须用于列表的每个元素的函数.第二个参数是可迭代的.

a = [1, 2, 3]   
map(str, a)  
['1', '2', '3']
Run Code Online (Sandbox Code Playgroud)

将列表转换为字符串后,您可以使用简单的连接函数将列表组合成单个字符串

a = map(str, a)    
''.join(a)      
'123'
Run Code Online (Sandbox Code Playgroud)


小智 10

a=[1,2,3]
b=[str(x) for x in a]
print b
Run Code Online (Sandbox Code Playgroud)

上面的方法是将列表转换为字符串的最简单,最通用的方法.另一个简短的方法是 -

a=[1,2,3]
b=map(str,a)
print b
Run Code Online (Sandbox Code Playgroud)


Tho*_*ner 8

There are three ways of doing this.

let say you have a list of integers

my_list = [100,200,300]
Run Code Online (Sandbox Code Playgroud)
  1. "-".join(str(n) for n in my_list)
  2. "-".join([str(n) for n in my_list])
  3. "-".join(map(str, my_list))

但是,正如 Python 网站https://docs.python.org/2/library/timeit.html上的 timeit 示例中所述,使用地图更快。所以我建议你使用"-".join(map(str, my_list))