使用词典进行列表修改(Python)

时间:2012-08-07 10:55:06

标签: string list dictionary int negative-number

我有以下内容:

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]]]

非常感谢,非常感谢。

1 个答案:

答案 0 :(得分:0)

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来尝试实现什么?