以下代码有效:
>>> stack = ['a','b','c']
>>> top, *stack = stack
>>> top
'a'
>>> stack
['b', 'c']
但是为什么这不起作用?
>>> dict1={'a':1, 'b':2, 'c':3}
>>> x, **dict1=dict1
SyntaxError: invalid syntax
我不应该期望x = {'a':1}和dict1 = {'b':2,'c':3}吗?
答案 0 :(得分:2)
如果您希望使用字典解压缩,可以执行以下操作:(使用Python3.7)
int mappedCount = (from product in products
from productMapping in DbContext.ProductCategoryMappings
.Where(x => product.TenantId == x.TenantId.ToString() &&
x.ProductId.ToString().ToUpper() == product.ProductGuid.ToUpper())
join tenantCustMapping in DbContext.TenantCustCategories
on productMapping.Value equals tenantCustMapping.Id
select 1).ToList().Sum();
>>> dict1={'a':1, 'b':2, 'c':3}
>>> x, *dict1=dict1.items()
>>> x
('a', 1)
>>> dict1
[('b', 2), ('c', 3)]
,以dict1.items()
对的形式返回一个元组列表,其中每个元组包含2个元素。因此,如果您希望将解压后的值转换回字典,则必须执行以下操作->
(key, value)
但是,当打开元组列表时,>>> x = [x] # x = list(x), won't work for you, because it converts tuple into a list.
# What is actually want is the tuple to be an element of the list.
>>> x # And it works like a charm!
[('a', 1)]
包含一个长度为2的列表,这两个都是元组。因此,将其转换为字典是相当简单的方法。
dict1
答案 1 :(得分:0)
因为运算符<TextField
id="login-email"
label="Email/MobileNo"
required
fullWidth
type="email"
className={classes.textField}
inputRef={el => {
this.input = el;
}}
or
inputRef={el => this.email = el;}
margin="normal"
/>
仅可用于在函数调用中将字典解压缩为关键字参数。例如,您可以将两个字典与**
作为参数的函数dict()
合并:
**kwargs
在元组解包中不能使用双星,就像单星一样。