繁体   English   中英

仅返回变量中的最后一个列表元素

[英]Only last list element returned in a variable

所以我有一个字符串列表,里面有一些公制单位。 例如:

list=['i','am','160','cm','but','i','would','like','to','be','1.8','m']

我想将其转换为一个新列表,并通过字典转换值。 我正在制作列表中公制单位的变量,以便以后可以将其用于转换。 但是每次我调用这个变量时,只返回最后一个元素。 (例如,只有上面列表中的m )。

你知道我该如何解决这个问题吗?

SI_1 = {'mm':0.001, 'cm':0.01, 'm':1.0, 'km':1000}
for i in new_list:
    if i in SI_1:
        METRIC_IN_TEXT=i
        print(METRIC_IN_TEXT)
        METRIC_IN_TEXT_VALUE=SI_1.get(i)
        print(METRIC_IN_TEXT_VALUE)

我不确定您要的是什么,但我们可以使用这种映射方式转换列表中的所有值:

  1. 不要调用变量list ,因为它是内置关键字。

代码示例:

my_list=['i','am','160','cm','but','i','would','like','to','be','1.8','m']
mapper = {'mm':0.001, 'cm':0.01, 'm':1.0, 'km':1000}

res = [mapper[el] if el in mapper.keys() else el for el in my_list ]
res

output:

['i', 'am', '160', 0.01, 'but', 'i', 'would', 'like', 'to', 'be', '1.8', 1.0]

抱歉,我的帖子根本不清楚,因为这是一个大学作业。 所以我想做一个 function 从文本文件转换单位,然后将相同的文本写入不同的文件并转换单位。 目标单位由 DICT 确定。 所以我的问题是列表理解“CONVERTED_LIST_1”为每次转换生成不同的列表,而不是一个包含所有转换的列表。 希望我现在变得更清楚

SI_1 = {'mm':0.001, 'cm':0.01, 'm':1.0, 'km':1000}
METRIC_IN_DICT=D.get('SIZE')
METRIC_IN_DICT_VALUE=SI_1.get(METRIC_IN_DICT)


with open('TEXT1.txt','r') as x:
        LIST=x.read().split()
        new_list=[item.replace('.','') if '.' in item else item for item in LIST]  
        for i in new_list:
            if i in SI_1:
            METRIC_IN_TEXT=i
            print(METRIC_IN_TEXT)
            METRIC_IN_TEXT_VALUE=SI_1.get(i)
            print(METRIC_IN_TEXT_VALUE)
            POS_OF_VALUE=new_list[new_list.index(METRIC_IN_TEXT)-1]
            print(POS_OF_LENGTH)
            RESULT=int(POS_OF_VALUE)*METRIC_IN_TEXT_VALUE/METRIC_IN_DICT_VALUE
            print(RESULT)   
            CONVERTED_LIST_1=[RESULT if i==POS_OF_VALUE and POS_OF_VALUE.isdigit() else METRIC_IN_DICT if i==METRIC_IN_TEXT else i for i in new_list] 
            print(CONVERTED_LIST_1)```

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM