Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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_String_List_For Loop - Fatal编程技术网

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