[英]Turn each element of a list into a separate string?
我有以下清單:
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
這應該工作:
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.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]
。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.