maxliu06 发表于 2020-6-20 15:21:38

列表值转换求教

我有原列表: ['百分比', 0.18783077252910993, 0.22321698021427624, 0.18793982332573]


我想转来新列表: ['百分比', '18.78%, '22.32%', '18.79%']


这个需要怎么来。、~!?

xiaosi4081 发表于 2020-6-20 15:23:36

列表推导式

maxliu06 发表于 2020-6-20 15:24:29

xiaosi4081 发表于 2020-6-20 15:23
列表推导式

{:5_99:}不会。、能来示例吗

Twilight6 发表于 2020-6-20 15:26:18

本帖最后由 Twilight6 于 2020-6-20 15:29 编辑


这样即可:

temp = ['百分比', 0.18783077252910993, 0.22321698021427624, 0.18793982332573]
new_list = []
for i in temp:
    if isinstance(i,float):
      new_list.append('{:.2f}%'.format(i*100))
    else:
      new_list.append(i)
print(new_list)

xiaosi4081 发表于 2020-6-20 15:27:31

maxliu06 发表于 2020-6-20 15:24
不会。、能来示例吗

a = ['百分比', 0.18783077252910993, 0.22321698021427624, 0.18793982332573]
b = []
b.append(a)
for i in a:
    if i != '百分比':
      b.append("%.2f"%i+"%")
print(b)

qiuyouzhi 发表于 2020-6-20 15:28:16

temp = ['百分比', 0.18783077252910993, 0.22321698021427624, 0.18793982332573]
for i in range(len(temp)):
    if type(temp) != str:
      tmp = temp * 100
      tmp = "%.2f" % tmp + "%"
      temp = tmp

maxliu06 发表于 2020-6-20 15:38:37

Twilight6 发表于 2020-6-20 15:26
这样即可:

转了之后,用openpyxl 写在excel 表上。它出来的结果还是 小数点形式的。 不是百分比字符串的~!!

Twilight6 发表于 2020-6-20 15:39:29

maxliu06 发表于 2020-6-20 15:38
转了之后,用openpyxl 写在excel 表上。它出来的结果还是 小数点形式的。 不是百分比字符串的~!!

{:10_258:}

小甲鱼的铁粉 发表于 2020-6-20 15:43:34

maxliu06 发表于 2020-6-20 15:38
转了之后,用openpyxl 写在excel 表上。它出来的结果还是 小数点形式的。 不是百分比字符串的~!!

右键excle的那个单元格,设置单元格格式,然后选择百分比就好了

maxliu06 发表于 2020-6-20 15:45:44

小甲鱼的铁粉 发表于 2020-6-20 15:43
右键excle的那个单元格,设置单元格格式,然后选择百分比就好了

我是想直接出结果 , 写在表格上面的

Twilight6 发表于 2020-6-20 15:47:11

maxliu06 发表于 2020-6-20 15:45
我是想直接出结果 , 写在表格上面的


对你想变的那列   使用 .apply(lambda x: format(x, '.2%'))

这样试试看,前面的格式化也可能就不用了,直接这样

maxliu06 发表于 2020-6-20 15:50:09

Twilight6 发表于 2020-6-20 15:39


{:5_109:}又可以了。。不知道是不是环境的问题了、。、谢谢

小甲鱼的铁粉 发表于 2020-6-20 16:01:41

maxliu06 发表于 2020-6-20 15:45
我是想直接出结果 , 写在表格上面的

额,那我还不会{:10_297:}
页: [1]
查看完整版本: 列表值转换求教