Python a(*{'q':'qqq'}),为什么只打印密钥
回溯:Python a(*{'q':'qqq'}),为什么只打印密钥,python,Python,回溯: def a(*x): print x a({'q':'qqq'}) a(*{'q':'qqq'})#why only print key. 调用函数时,在列表或dict之前使用星号将其作为位置参数传入 例如: ({'q': 'qqq'},) ('q',) 调用函数时,在列表或dict之前使用星号将其作为位置参数传入 例如: ({'q': 'qqq'},) ('q',) 字典就是这样被转换成序列的 tupledictionary=tupledictionary.keys 出
def a(*x):
print x
a({'q':'qqq'})
a(*{'q':'qqq'})#why only print key.
调用函数时,在列表或dict之前使用星号将其作为位置参数传入 例如:
({'q': 'qqq'},)
('q',)
调用函数时,在列表或dict之前使用星号将其作为位置参数传入 例如:
({'q': 'qqq'},)
('q',)
字典就是这样被转换成序列的 tupledictionary=tupledictionary.keys 出于同样的原因
>>> a(*('test', 'testing'))
('test', 'testing')
>>> a(*{'a': 'b', 'c': 'd'})
('a', 'c')
为x指定键,而不是对,这就是字典转换为序列的方式
for x in dictionary:
tupledictionary=tupledictionary.keys
出于同样的原因
>>> a(*('test', 'testing'))
('test', 'testing')
>>> a(*{'a': 'b', 'c': 'd'})
('a', 'c')
为x指定键,而不是对
for x in dictionary:
将尝试将dict{'q':'qqq'}扩展为函数参数的逐项列表
请注意:
a(*{'q' : 'qqq'})
返回“q”,这正是您看到的。将字典强制为列表/元组时,只会得到键列表
将尝试将dict{'q':'qqq'}扩展为函数参数的逐项列表
请注意:
a(*{'q' : 'qqq'})
返回“q”,这正是您看到的。将字典强制为列表/元组时,只会获得键列表。在函数调用中的表达式前面使用*将迭代表达式的值,在这种情况下,并使迭代中的每个项成为函数调用的另一个参数。在Python中对dict进行迭代会产生好坏的关键。在函数调用中的表达式前面使用*会对dict表达式的值进行迭代,在这种情况下,会使迭代中的每个项成为函数调用的另一个参数。在Python中对dict进行迭代会产生更好或更坏的键。迭代字典会产生它的键
tuple({'q' : 'qqq'})
如果要从字典中同时获取键和值,可以使用.items或.iteritems
d = {'a': 1, 'b': 2, 'c': 3 }
for x in d:
print x # prints a, b, c but not necessarily in that order
sorted(d): # Gives a, b, c in that order. No 1/2/3.
迭代字典将产生它的键
tuple({'q' : 'qqq'})
如果要从字典中同时获取键和值,可以使用.items或.iteritems
d = {'a': 1, 'b': 2, 'c': 3 }
for x in d:
print x # prints a, b, c but not necessarily in that order
sorted(d): # Gives a, b, c in that order. No 1/2/3.
您需要一个参数列表,然后告诉python以参数序列的形式发送dict。当dict转换为序列时,它使用键
我想您是在寻找**,而不是*您需要的是参数列表,然后告诉python以参数序列的形式发送dict。当dict转换为序列时,它使用键
我想你真的在寻找**,而不是*可能是因为当你对字典进行标准迭代时,它会返回**。它被转换为包含其键的序列。此示例展示了相同的行为:
sorted(d.items()) # [('a,' 1), ('b', 2), ('c', 3)]
要获得我假设您期望的结果,您可以将其作为变量关键字参数传递,如下所示:
>>> for i in {"a": "1", "b": "2"}:
... print i
...
a
b
请注意,您现在基本上回到了开始的位置,但什么也没有得到。可能是因为当您对字典进行标准迭代时,它会返回结果。它被转换为包含其键的序列。此示例展示了相同的行为:
sorted(d.items()) # [('a,' 1), ('b', 2), ('c', 3)]
要获得我假设您期望的结果,您可以将其作为变量关键字参数传递,如下所示:
>>> for i in {"a": "1", "b": "2"}:
... print i
...
a
b
请注意,您现在基本上回到了开始的位置,但什么也没有得到。您可以说*x将其参数x视为序列-python的序列类型是元组或列表。**将其参数视为映射。您可以说*x将其参数x视为序列-python的序列类型为元组或列表。**将其参数视为映射。顺便说一下:这里显示的不是回溯,而是输出。回溯是发生异常时显示的堆栈跟踪。顺便说一下:这里显示的不是回溯,而是输出。回溯是发生异常时显示的堆栈跟踪。**可能更糟,因为它会给出错误;它试图将dict作为命名参数的映射进行计算。**可能更糟糕,因为它会给出一个错误;它尝试将dict作为命名参数的映射进行计算。