我想更改dict中列表中的值,使用多个键将我的用户排名改为其他内容而不更改顺序而不使用.append
或.remove
。该列表包含排名,排名标题,设置和time.time()
。例如:
[1, "user", "joseph", 12324544]
我想将其更改为:
[4, "staff", "charles", time.time()]
我该怎么做?
答案 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