亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將一串值拆分為多個字符串

將一串值拆分為多個字符串

PHP
慕蓋茨4494581 2023-11-09 21:23:00
我目前正在開發一個程序,該程序從 csv 文件中獲取一組列表,并將它們分組在一起。我想出的程序是:List_one = []                  with open("trees.csv") as f:        skiplines = f.readline()        for line in f:          res = line.split(" ")              List_one.append(res)          for i in List_one:        (i[0]) = (i[0]).rstrip("\n")    print (List_one)我現在得到的是一組列表,但問題是這些列表是字符串,我希望它們作為浮點數。列表如下所示:[['1,8.3,70,10.3'], ['2,8.6,65,10.3'], ['3,8.8,63,10.2'], ['4,10.5,72,16.4'], ['5,10.7,81,18.8'], ['6,10.8,83,19.7'], ['7,11.0,66,15.6'], ['8,11.0,75,18.2'], ['9,11.1,80,22.6'], ['10,11.2,75,19.9'], ['11,11.3,79,24.2'], ['12,11.4,76,21.0'], ['13,11.4,76,21.4'], ['14,11.7,69,21.3'], ['15,12.0,75,19.1'], ['16,12.9,74,22.2'], ['17,12.9,85,33.8'], ['18,13.3,86,27.4'], ['19,13.7,71,25.7'], ['20,13.8,64,24.9'], ['21,14.0,78,34.5'], ['22,14.2,80,31.7'], ['23,14.5,74,36.3'], ['24,16.0,72,38.3'], ['25,16.3,77,42.6'], ['26,17.3,81,55.4'], ['27,17.5,82,55.7'], ['28,17.9,80,58.3'], ['29,18.0,80,51.5'], ['30,18.0,80,51.0'], ['31,20.6,87,77.0']]正如你們所看到的,我也不能在列表一上使用 float() ,因為列表本身就是一個完整的字符串。有沒有辦法可以通過索引拆分列表,這樣我就得到:['1', '8.3', '70', '10.3'].....歡迎任何幫助。
查看完整描述

4 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

“line.split(',')”用“,”分割字符串并返回列表。對于字符串 '1,8.3,70,10.3' 它將返回 [1, 8.3, 70, 10.3]



查看完整回答
反對 回復 2023-11-09
?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

你可以說:


res = line.split(" ")


# map takes a function as the first arg and a list as the second

list_of_floats = list(map(lambda n: float(n), res.split(",")))


# then you can

List_one.append(list_of_floats)

這仍然會給你一個嵌套列表,因為你在每次迭代期間推送一個列表for line in f:,但每個列表至少會是你指定的浮點數。


如果您只想獲得一個平面浮點列表而不是執行初始操作,line.split(' ')您可以使用正則表達式來分割從 csv 讀取的行:


import re # at the top of your file


res = re.split(r'[\s\,]', line)

list_of_floats = list(map(lambda n: float(n), res))

List_one.append(list_of_floats)


查看完整回答
反對 回復 2023-11-09
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

如果需要,您可以用逗號分隔字符串。不過,在將它們附加到 List_one 之前,您可能應該完成所有操作。

res = [float(x) for x in line.split(" ")[0].split(",")]
List_one.append(res)

這是否如您所愿?抱歉,我不確定輸入的格式是什么,所以我有點猜測


查看完整回答
反對 回復 2023-11-09
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

這可能有幫助:


l =[['1,8.3,70,10.3'], ['2,8.6,65,10.3'], ['3,8.8,63,10.2'], ['4,10.5,72,16.4']]


l2 =[]

for x in l:

    a =x[0].split(",")

    l2.append(a)

print(l2)

享受!


查看完整回答
反對 回復 2023-11-09
  • 4 回答
  • 0 關注
  • 211 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號