在用Python列出浓度列表时遇到问题

时间:2020-07-01 21:46:17

标签: python

我对python很陌生,并且有一个关于将数字列表转换为带单位列表的问题。

例如,我可以有一个浓度为C = [1、2、3、4]的数组,但是我该怎么做才能创建一个新列表,以便每个值后面都有一个单位(例如C_list = [1M, 2M,3M,4M])

我尝试制作以下代码,但返回相同的数字 (例如,C_list是[2M,2M,2M,2M],而不是[1M,2M,3M,4M]):

S0 = [0.3, 0.7, 1.0, 1.4, 1.8]#initial substrate concentration
S0_Legend = np.empty(len(S0),dtype='S10')    
for i in S0:
    a=str(i)+'M'
    for x in range(len(S0)):
          S0_Legend[x] = a
print(S0_Legend)

任何帮助都会中断,敬请谅解!

2 个答案:

答案 0 :(得分:2)

使用list-comprehension

S0 = [0.3, 0.7, 1.0, 1.4, 1.8]

print([str(x) + 'M' for x in S0])

输出:

['0.3M', '0.7M', '1.0M', '1.4M', '1.8M']

答案 1 :(得分:1)

最好保持简单,只需像在代码str(i)+'M'中那样添加单元,然后将每个元素附加到新列表中即可:

S0 = [0.3, 0.7, 1.0, 1.4, 1.8]
S0_Legend = []
for i in S0:
    S0_Legend.append(str(i)+'M') 
print(S0_Legend)