我有以下列表:
mylist=[[3, 95],[8, 92],[18, 25],[75, 78],[71, 84],-9999,[96, 50],[91, 70],-9999,[19, 60]]
除此之外,每个元素都是一个列表,除了-9999
值int
之外。
假设我想使用for
循环将每个元素转换为string
,以便将其写入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
答案 0 :(得分:3)
这应该有效:
for e in map(str, myList):
#do your stuff here, e is '[3, 95]' on the fst element and so on
map
将函数应用于myList
中的每个元素。使用str
函数会将列表中的每个元素转换为字符串,以便您可以自由使用它。
答案 1 :(得分:1)
你在这里犯了两个不同的错误。首先,在每次迭代中,当您只想str.join
str(elem)
是列表中的当前项时,您使用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)
您还未正确使用enumerate
。 enumerate
用于获取列表中每个项目的索引值。您的原始代码将索引和项目都作为i
。即。 i = (0, [3, 95])
,当你真正想要它们分开的时候。如果您需要这些索引,请使用:
for i, elem in enumerate(mylist):
str1 = str(elem)
i = 0
和elem = [3, 95]
。
答案 2 :(得分:0)
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
或
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