Python 将列表中的每个元素转换为单独的字符串?
我有以下清单:Python 将列表中的每个元素转换为单独的字符串?,python,string,list,for-loop,Python,String,List,For Loop,我有以下清单: mylist=[[3,95]、[8,92]、[18,25]、[75,78]、[71,84]、-9999[96,50]、[91,70]、-9999[19,60]] 在它中,每个元素本身就是一个列表,除了-9999值(即int值)之外 假设我想使用for循环将每个元素转换为字符串,以便将其写入excel或csv文件。我怎么做呢 以下是我的尝试: mylist=[[3, 95],[8, 92],[18, 25],[75, 78],[71, 84],-9999,[96, 50],[91
mylist=[[3,95]、[8,92]、[18,25]、[75,78]、[71,84]、-9999[96,50]、[91,70]、-9999[19,60]]
在它中,每个元素本身就是一个列表,除了-9999
值(即int
值)之外
假设我想使用for
循环将每个元素转换为字符串
,以便将其写入excel
或csv
文件。我怎么做呢
以下是我的尝试:
mylist=[[3, 95],[8, 92],[18, 25],[75, 78],[71, 84],-9999,[96, 50],[91, 70],-9999,[19, 60]]
for i in enumerate(mylist):
str1 = ''.join(str(e) for e in mylist)
但我得到的是将整个列表转换为单个字符串,而不区分每个项目:
str1='[3,95][8,92][18,25][75,78][71,84]-9999[96,50][91,70]-9999[19,60]'
相反,我希望:
str1='[3,95]' #Iter 1
str1='[8, 92]' #Iter 2
str1='[18, 25]' #Iter 3
...
#and so forth
这应该起作用:
for e in map(str, myList):
#do your stuff here, e is '[3, 95]' on the fst element and so on
map
将函数应用于myList
中的每个元素。使用str
函数将列表中的每个元素转换为字符串,以便您可以自由使用。您在这里犯了两个不同的错误。首先,在每次迭代中,当您只需要str(elem)
时,使用str.join
从完整列表中生成一个字符串,其中elem
是列表中的当前项
mylist=[[3, 95],[8, 92],[18, 25],[75, 78],[71, 84],-9999,[96, 50],[91, 70],-9999,[19, 60]]
for elem in mylist:
str1 = str(elem)
您还未正确使用枚举
<代码>枚举用于获取列表中每个项目旁边的索引值。您的原始代码将索引和项都作为i
。例如,i=(0,[3,95])
,当你真的想把它们分开的时候。如果需要这些索引,请使用:
for i, elem in enumerate(mylist):
str1 = str(elem)
其中i=0
和elem=[3,95]
mylist = [[3, 95],[8, 92],[18, 25],[75, 78],[71, 84],-9999,[96, 50],[91, 70],-9999,[19, 60]]
# convert all elements
new_list = [str(e) for e in mylist ]
# use it
for str1 in new_list:
print str1
或
看一看“列表理解”,只是不要
”。join()
它。在我的列表中为我:
打印我
,然后转换成字符串'\n。join(str(e)在我的列表中为e)
应该这样做你想要这个[str(i)在我的列表中为i]
非常感谢。准确而简洁的回答。另外,感谢您指出我的错误。@FC84很高兴能提供帮助,如果您不需要枚举
,我实际上会推荐Daniel的方法,因为使用map可以节省一行代码,而且看起来更干净。
mylist = [[3, 95],[8, 92],[18, 25],[75, 78],[71, 84],-9999,[96, 50],[91, 70],-9999,[19, 60]]
for x in mylist:
# convert one element and use it
str1 = str(x)
print str1