更改列表值

时间:2014-05-07 23:15:51

标签: python list

我想更改dict中列表中的值,使用多个键将我的用户排名改为其他内容而不更改顺序而不使用.append.remove。该列表包含排名,排名标题,设置和time.time()。例如:

 [1, "user", "joseph", 12324544]

我想将其更改为:

[4, "staff", "charles", time.time()]

我该怎么做?

3 个答案:

答案 0 :(得分:2)

您可以指定切片:

>>> import time
>>> l =  [1, "user", "joseph", 12324544]
>>> id(l)
140172281932256
>>> l[:] = [4, "staff", "charles", time.time()]
>>> id(l)
140172281932256

或者(而不是l[:] = [4, "staff", "charles", time.time()]),使用简单赋值,如

l[0] = 4
l[1] = "staff"
l[2] = "charles"
l[3] = time.time()

答案 1 :(得分:1)

列表是可变的。要么将整个布料重新分配,要么使用索引单独更改每个元素。

lst = [1, 'user', "joseph", 12324544]

lst = [4, "staff", "charles", time.time()] # ta-da

# alternatively
lst[0] = 4
lst[1] = "staff"
lst[2] = "charles"
lst[3] = time.time()

答案 2 :(得分:1)

在您最近的评论后编辑:

你有:

d = {"charles": {"rank": [1, "user", "bot", 1399505479.158], "points": 1, "claims": list(), "owned": False, "alert": False, "notes": list()}}

更改用户“charles”的排名:

d['charles']['rank'] = [5, 'owner', 'bot', time.time()]

或者,要更改该列表中的一个值:

d['charles']['rank'][0] = 5
d['charles']['rank'][1] = 'owner'
d['charles']['rank'][2] = 'bot'
d['charles']['rank'][3] = time.time()


原始答案:

根据我的理解,你有一个带有多个键的词典,比如说:

d = {'Key1': [1, 'user', 'joseph', 12324544], 'Key2': [2, 'user', 'jim', 12324545]}

要更改第一个键列表中的值(“Key1”),您可以执行

d['Key1'][0] = 4
d['Key1'][1] = 'staff'
d['Key1'][2] = 'charles'
d['Key1'][3] = time.time()

会导致

[4, 'staff', 'charles', 1399505116.365]

d['Key1']

不使用.append或.remove

相关问题