[英]How to remove a string from a list python
是否可以刪除字符串並只有列表
data = [
"50,bird,corn,105.4,"
"75,cat,meat,10.3,"
"100,dog,eggs,1000.5,"
]
希望它看起來像這樣
data = [
50,'bird','corn',105.4,
75,'cat','meat',10.3,
100,'dog','eggs',1000.5,
]
out = []
for x in data:
for e in x.split(","):
out.append(e)
這有什么作用? 它在逗號的data
拆分每個元素 ( x
),挑選出每個單獨的標記 ( e
),並將它們放入變量 ( out.append
) 中。
new_data = []
for i in data:
new_data.extend(i.split(','))
new_data
請注意可能存在問題(例如,最后一個逗號后面沒有任何內容,因此它會生成一個 '' 字符串作為新數組中的最后一個元素)。
如果您想專門將數字轉換為整數和浮點數,也許有一種更優雅的方法,但這會起作用(如果您有多余的逗號,它也會刪除空單元格):
new_data = []
for i in data:
strings = i.split(',')
for s in strings:
if (len(s)>0):
try:
num = int(s)
except ValueError:
try:
num = float(s)
except ValueError:
num = s
new_data.append(num)
new_data
拆分每個字符串(這將為您提供每個字符串中“,”之間的段數組):
str.split(",")
並將數組加在一起
因為列表中的每個字符串都有一個尾隨逗號,所以您可以簡單地將它作為一個字符串重新組合在一起,然后用逗號再次拆分。 為了在結果列表中獲得實際的數字項,您可以這樣做:
import re
data = [
"50,bird,corn,105.4,"
"75,cat,meat,10.3,"
"100,dog,eggs,1000.5,"
]
numeric = re.compile("-?\d+[\.]\d*$")
data = [ eval(s) if numeric.match(s) else s for s in "".join(data).split(",")][:-1]
data # [50, 'bird', 'corn', 105.4, 75, 'cat', 'meat', 10.3, 100, 'dog', 'eggs', 1000.5]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.