在python 3.3中将字典中的随机键添加到列表中
我正在努力找出我的代码出了什么问题。我试图从几个字典中随机选择一个键,然后将该键添加到列表的开头。例如:在python 3.3中将字典中的随机键添加到列表中,python,python-3.3,Python,Python 3.3,我正在努力找出我的代码出了什么问题。我试图从几个字典中随机选择一个键,然后将该键添加到列表的开头。例如: import random list1 = ["list"] dict1 = {"key1" : "def1", "key2" : "def2", "key3" : "def3"} dict2 = {"key4" : "def4", "key5" : "def5", "key6" : "def6"} DICTIONARIES = [dict1, dict2] value = random.c
import random
list1 = ["list"]
dict1 = {"key1" : "def1", "key2" : "def2", "key3" : "def3"}
dict2 = {"key4" : "def4", "key5" : "def5", "key6" : "def6"}
DICTIONARIES = [dict1, dict2]
value = random.choice(DICTIONARIES)
key = random.choice(list(value.keys()))
list1[:0] = key
print (list1)
我想要的是[key5,list]的打印结果。我得到的是['k','e','y','5',列表]
有什么想法吗?有没有更好的方法可以在多个字典中搜索一个随机键来生成所需的结果
谢谢。我想
项
变量与列表1
相同。如果是,请尝试以下操作:
list1[:0] = [key]
或者,您也可以使用list.insert
函数代替切片分配:
list1.insert(0, key)
您的版本的工作方式如下所示:
- 分配前:
,list1=['list']
key='key5'
- 赋值的左侧指的是
list1
- 右侧指的是
,即键的值
“键5”
是由“key5”
、k
、e
和y
组成的序列5
- 因此,通过
我们将list1[:0]=key
序列和“key5”
连接起来list1
- 但是在
中,我们连接了list1[:0]=[key]
序列(只有一个元素等于“key5”)和[key]
。这就是我们真正想要的list1
项
变量与列表1
相同。如果是,请尝试以下操作:
list1[:0] = [key]
或者,您也可以使用list.insert
函数代替切片分配:
list1.insert(0, key)
您的版本的工作方式如下所示:
- 分配前:
,list1=['list']
key='key5'
- 赋值的左侧指的是
list1
- 右侧指的是
,即键的值
“键5”
是由“key5”
、k
、e
和y
组成的序列5
- 因此,通过
我们将list1[:0]=key
序列和“key5”
连接起来list1
- 但是在
中,我们连接了list1[:0]=[key]
序列(只有一个元素等于“key5”)和[key]
。这就是我们真正想要的list1
- 类似这样的东西:
import random
list1 = ["list"]
dict1 = {"key1" : "def1", "key2" : "def2", "key3" : "def3"}
dict2 = {"key4" : "def4", "key5" : "def5", "key6" : "def6"}
all_keys = list(dict1.keys() | dict2.keys()) #creates a list containing all keys
key = random.choice(all_keys)
list1.insert(0,key)
print (list1) #prints ['key1', 'list']
大概是这样的:
import random
list1 = ["list"]
dict1 = {"key1" : "def1", "key2" : "def2", "key3" : "def3"}
dict2 = {"key4" : "def4", "key5" : "def5", "key6" : "def6"}
all_keys = list(dict1.keys() | dict2.keys()) #creates a list containing all keys
key = random.choice(all_keys)
list1.insert(0,key)
print (list1) #prints ['key1', 'list']
在Python
string
中,对象是可编辑的,因此,这一行
list1[:0] = key
还有这个
list1[:0] = list(key)
等于,表示将
列表1
中从第0位到第0位的所有元素替换为键中的元素。您应该使用insert
函数,或者使用key
元素创建一个列表并分配它。在Python中字符串
对象是可编辑的,因此,此行
list1[:0] = key
还有这个
list1[:0] = list(key)
等于,表示将列表1
中从第0位到第0位的所有元素替换为键中的元素。您应该使用insert
函数,或者使用key
元素制作一个列表并分配它。在Python 3中应该使用print()
语法。非常感谢,我以后会使用这个方法。在Python 3中应该使用print()
语法。非常感谢,我以后会使用这个方法。是的,项目应该是列表1。对不起,工作太多了,搞混了:-)你的解释很有帮助,谢谢!是的,项目应该是列表1。对不起,工作太多了,搞混了:-)你的解释很有帮助,谢谢!