【问题标题】:List modification using dictionarys (Python)使用字典修改列表(Python)
【发布时间】:2012-08-04 09:01:13
【问题描述】:

我有以下几点:

list = [['1234-4321-1',[5, 6, -4, 11, 22]], ['8763-1234-1', [43, -5, 0, 0, -1]], ['1234-5376-1', [3, 0, -5, -6, 0]]]

.

reversed__dict = {'8763-1234-1'}

我想编写一个循环遍历列表,当它检测到 reversed_dict 中保存的反向值以永久重新排列字符串(更改为 '1234-8763-1' 即交换前两个段)并将其乘以对应的 int值 -1。

我尝试了以下方法:

for i, x in list:
    if i in ordered_dict:
        p = (x * -1)
return list[p]

但我只是不断收到“返回”和语法错误,这也不会尝试重新排列“8763-1234-1”

期望的最终结果是:

    >>list
    >>[['1234-4321-1',[5, 6, -4, 11, 22]], ['1234-8763-1', [-43, 5, 0, 0, 1]], ['1234-5376-1', [3, 0, -5, -6, 0]]]

帮助很大,非常感谢。

【问题讨论】:

    标签: string list dictionary int negative-number


    【解决方案1】:
    for val in lst:
        num = val[0]
        if num in reversed_set:
            parts = num.split('-')
            val[0] = '-'.join([parts[1], parts[0], parts[2]])
    
    >> lst
    [['1234-4321-1', [5, 6, -4, 11, 22]], ['1234-8763-1', [43, -5, 0, 0, -1]], ['1234-5376-1', [3, 0, -5, -6, 0]]]
    

    顺便说一句,{'8763-1234-1'} 不是字典,而是集合。而且用“list”作为变量名也不是什么好主意。

    另外,你想通过将列表乘以 -1 来达到什么目的?

    【讨论】:

    • user1532369 想要列表中与匹配字符串相关联的数字乘以 -1。它在问题中说。
    • @User 我很清楚 list 不是一个非变量名,我只是在这种情况下使用它来理解。我可以在 if 语句中添加一个额外的行 val[1] = val[1] * -1 吗?
    • 在 if 中尝试val[1] = [-v for v in val[1]] 之类的东西。
    猜你喜欢
    • 1970-01-01
    • 2016-07-03
    • 2016-09-30
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2019-07-18
    • 2012-03-11
    • 2016-04-04
    相关资源
    最近更新 更多