双重遍历将结果存储到列表中
我是先将Excel中的数据导入到pyqt5的textEdit中,然后获取textEdit中的数据,数据如下:41.24651.40561.41167.35670.77772.59473.18272.83971.80470.42168.80867.27565.71764.14862.786
41.70652.22761.79466.67668.98169.63868.96867.27864.92962.26159.46156.89454.54352.35350.427
40.45950.12558.26861.95363.29463.05661.50258.95555.84652.57749.32946.47343.93341.68339.719
38.59647.18453.97256.74557.47556.68354.62551.66548.27444.86241.62838.86236.43734.35332.569
36.77444.63650.22352.25952.40651.11248.71445.54642.01238.54335.35632.68830.36428.40226.704
35.21842.05646.64348.01747.72746.14143.58140.31636.78033.34730.27927.73225.54623.71922.128
33.28439.31843.11144.09543.55841.78639.13235.86232.37929.11226.19423.77921.73320.04118.571
31.09036.63239.72040.37139.59137.70435.03931.81428.43125.30622.55020.29018.37516.80415.443
现在我需要循环读取上面的数据,因为textEdit中的数据是str类型的,所以我先循环读取每行的数据,将每行的数据保存到一个列表中。代码如下:
for i in range(reflect_rows):
List = list
list_change = List.split('')
获取的结果如下
['41.246', '51.405', '61.411', '67.356', '70.777', '72.594', '73.182', '72.839', '71.804', '70.421', '68.808', '67.275', '65.717', '64.148', '62.786']
['41.706', '52.227', '61.794', '66.676', '68.981', '69.638', '68.968', '67.278', '64.929', '62.261', '59.461', '56.894', '54.543', '52.353', '50.427']
['40.459', '50.125', '58.268', '61.953', '63.294', '63.056', '61.502', '58.955', '55.846', '52.577', '49.329', '46.473', '43.933', '41.683', '39.719']
['38.596', '47.184', '53.972', '56.745', '57.475', '56.683', '54.625', '51.665', '48.274', '44.862', '41.628', '38.862', '36.437', '34.353', '32.569']
['36.774', '44.636', '50.223', '52.259', '52.406', '51.112', '48.714', '45.546', '42.012', '38.543', '35.356', '32.688', '30.364', '28.402', '26.704']
['35.218', '42.056', '46.643', '48.017', '47.727', '46.141', '43.581', '40.316', '36.780', '33.347', '30.279', '27.732', '25.546', '23.719', '22.128']
['33.284', '39.318', '43.111', '44.095', '43.558', '41.786', '39.132', '35.862', '32.379', '29.112', '26.194', '23.779', '21.733', '20.041', '18.571']
['31.090', '36.632', '39.720', '40.371', '39.591', '37.704', '35.039', '31.814', '28.431', '25.306', '22.550', '20.290', '18.375', '16.804', '15.443',]
但是现在我还需要将每个数字再除以100,然后保存到列表中,我的想法是使用双重循环遍历每个列表中的每个元素,然后将每个数据除以100,然后再将结果保存到列表中
但是我在使用append将结果添加到列表中时发现添加的数据与我想要的不一样。
我想要的数据是在原数据的基础上除以100,还能保存成上面这样的列表,方便后面的计算使用。
希望大佬们能给提点建议,应该怎么弄,谢谢了
不懂有没理解错,把你的 for 循环改成这样试试:
temp = []
for i in range(reflect_rows):
List = list
list_change = List.split()
temp.append(list(map(float, list_change)))
result = []
for i in temp:
result.append()
Twilight6 发表于 2022-5-8 17:49
不懂有没理解错,把你的 for 循环改成这样试试:
temp.append(list(map(float, list_change)))这句话运行不成功
前面这句list_change = List.split('')的结果是list类型,list(map(float, list_change))运行后不显示结果 Yangyubin 发表于 2022-5-8 22:17
temp.append(list(map(float, list_change)))这句话运行不成功
前面这句list_change = List.split('') ...
运行不成功是什么意思,如果有报错就发完整报错内容吧~ Twilight6 发表于 2022-5-8 22:19
运行不成功是什么意思,如果有报错就发完整报错内容吧~
我写的页面,运行直接退出来 Yangyubin 发表于 2022-5-8 22:30
我写的页面,运行直接退出来
我运行完这几行代码在控制台上输出的是
for i in range(reflect_rows):
List = list
#print(List)
#print(type(List))
list_change = List.split('')
print(list_change)
print(type(list_change))
结果是:
['41.246', '51.405', '61.411', '67.356', '70.777', '72.594', '73.182', '72.839', '71.804', '70.421', '68.808', '67.275', '65.717', '64.148', '62.786', '61.752', '61.207']
<class 'list'>
是不是因为这两个字符'41.246', '51.405'中间有个空格的原因? Yangyubin 发表于 2022-5-8 22:30
我写的页面,运行直接退出来
最少要知道是什么问题报错吧,不然怎么解决问题...
你这里数据拿来测试感觉没啥问题:
List = "41.24651.40561.41167.35670.77772.59473.18272.83971.80470.42168.80867.27565.71764.14862.786"
temp = []
list_change = List.split()
temp.append(list(map(float, list_change)))
result = []
for i in temp:
result.append()
print(result)
Yangyubin 发表于 2022-5-8 22:33
我运行完这几行代码在控制台上输出的是
for i in range(reflect_rows):
List = list
...
你的代码明显是不需要空字符串的,所以直接split() 即可,不需要你传入空格来切割
split 默认切割就是以空格来切割,而且默认会丢弃空字符串,而你显式的填入 split(" ") 空字符串将不会丢弃 Twilight6 发表于 2022-5-8 22:38
你的代码明显是不需要空字符串的,所以直接split() 即可,不需要你传入空格来切割
split 默认切割 ...
好的,那个地方我修改一下。但是这个list_change的结果是['41.246', '51.405', '61.411', '67.356', '70.777', '72.594', '73.182', '72.839', '71.804', '70.421', '68.808', '67.275'],是list类型,能使用temp.append(list(map(float, list_change)))这句话吗?
我也不知道那地方报错,就是程序运行到这句话,界面就自动退出了,然后控制台也没输出 Yangyubin 发表于 2022-5-8 22:49
好的,那个地方我修改一下。但是这个list_change的结果是['41.246', '51.405', '61.411', '67.356', '70. ...
list(map(float, list_change)) 就是返回将列表中所有元素都转为 float 浮点型了
然后你就可以进行你的计算了,在将你的计算存到你自己的表中,如何实现这你应该会改吧
Twilight6 发表于 2022-5-8 22:52
list(map(float, list_change)) 就是返回将列表中所有元素都转为 float 浮点型了
然后你就可以进 ...
好的,我再看下是那地方出问题了,谢谢你了
Yangyubin 发表于 2022-5-8 22:56
好的,我再看下是那地方出问题了,谢谢你了
没事
Twilight6 发表于 2022-5-8 23:00
没事
我查找了一下错误的原因,是因为我的list_change的结果是['41.246', '51.405', '61.411', '67.356', '70.777', '72.594', '73.182', '72.839', '71.804'],他是list类型,如果使用temp.append(list(map(float, list)))这句话会报TypeError: 'type' object is not iterable这个错误,说是“type”对象不可编辑 Yangyubin 发表于 2022-5-9 09:50
我查找了一下错误的原因,是因为我的list_change的结果是['41.246', '51.405', '61.411', '67.356', '70. ...
list 别当变量名,改其他的
页:
[1]