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

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

更改元組元素的數據類型 (PYTHON)

更改元組元素的數據類型 (PYTHON)

森欄 2023-08-03 17:32:22
我正在從 csv 文件中讀取數據并將其轉換為元組,如下所示,text = open('States.csv').read()lines= text.splitlines()data= [tuple(line.split(',')) for line in lines[1:]]data作為回報,我打印出我的元組,其中當前所有數據均作為字符串:[ ('Boston', 'MA', '20489', '19715', '23610', '9.9', '401', '15.6', '4499.63'),    ('Trenton', 'NJ', '26835', '26573', '25113', '9.9', '345', '23', '552.13') ]我需要元素 2-4(波士頓為 20489、19715、23610,特倫頓為 26835、26573、25113)為整數,5-8 為浮點數,我該怎么做?
查看完整描述

3 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

你可以有:


types = (str, str, int, int, int, float, float, float, float)

然后改變你的:


data= [tuple(line.split(',')) for line in lines[1:]]

到:


data = [tuple([t(val) for t, val in zip(types, line.split(','))])

        for line in lines[1:]]

嘗試使用這些行(在標題行之后):


Boston,MA,20489,19715,23610,9.9,401,15.6,4499.63

Trenton,NJ,26835,26573,25113,9.9,345,23,552.13

給出該值data:


[('Boston', 'MA', 20489, 19715, 23610, 9.9, 401.0, 15.6, 4499.63),

 ('Trenton', 'NJ', 26835, 26573, 25113, 9.9, 345.0, 23.0, 552.13)]


查看完整回答
反對 回復 2023-08-03
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

首先嘗試將元組轉換為列表。修改它,然后更改為您想要的元組。元組是不可變的。



查看完整回答
反對 回復 2023-08-03
?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

另一個解決方案:


data = [ ('Boston', 'MA', '20489', '19715', '23610', '9.9', '401', '15.6', '4499.63'),

         ('Trenton', 'NJ', '26835', '26573', '25113', '9.9', '345', '23', '552.13') ]


new_t = [(*t[:2], *map(int, t[2:5]), *map(float, t[5:9])) for t in data]

print(new_t)

印刷:


[('Boston', 'MA', 20489, 19715, 23610, 9.9, 401.0, 15.6, 4499.63), 

 ('Trenton', 'NJ', 26835, 26573, 25113, 9.9, 345.0, 23.0, 552.13)]


查看完整回答
反對 回復 2023-08-03
  • 3 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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