Python中定义的dict条目
有没有办法制作出如下的东西 让我们有:Python中定义的dict条目,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,有没有办法制作出如下的东西 让我们有: a = {'p': 1, 'r': 2} b = {'p': 1, 'r': 3} 这是一个简化的条目,但是假设有更多的公共键值对,因此目标是使定义更小、更可读。有没有办法给它取个别名以便我可以写下,例如: m = ('p': 1) # note this does not work a = {m, 'r': 2} b = {m, 'r': 3} 以下是我的问题的模糊版本: what = { sr: [{'los_angels': m
a = {'p': 1, 'r': 2}
b = {'p': 1, 'r': 3}
这是一个简化的条目,但是假设有更多的公共键值对,因此目标是使定义更小、更可读。有没有办法给它取个别名以便我可以写下,例如:
m = ('p': 1) # note this does not work
a = {m, 'r': 2}
b = {m, 'r': 3}
以下是我的问题的模糊版本:
what = {
sr: [{'los_angels': mg, 'sg': sg, 'ua': boston, 'new_york': seattle},
{'los_angels': mg, 'sg': sg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle},
{'los_angels': mg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle, 'apple': 'IS'},
{'los_angels': mg, 'new_york': seattle, 'apple': 'IS'}],
as: [{'los_angels': mg, 'ua': boston, 'new_york': seattle}, {'los_angels': mg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle, 'apple': 'IS'},
{'los_angels': mg, 'new_york': seattle, 'apple': 'IS'}],
dd: [{'los_angels': 'orange', 'new_york': seattle},
{'los_angels': 'orange', 'new_york': seattle, 'ua': boston},
{'los_angels': 'orange', 'new_york': seattle, 'apple': 'IS'},
{'los_angels': 'orange', 'new_york': seattle, 'ua': boston, 'apple': 'IS'}],
a: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
b: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
c: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
d: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
e: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
f: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
g: [{}],
h: [{}],
i: [{}, {'los_angels': mg}],
}
因此,我正在寻找一些方法来制作“洛杉矶天使”:橙色部分,“ua”:波士顿更小:)您只需要对代码做一点小小的更改:
m=(('p',1),)
a=dict(m, r=2)
b=dict(m, r=3)
您只需要对代码进行最小的更改:
m=(('p',1),)
a=dict(m, r=2)
b=dict(m, r=3)
您只需要对代码进行最小的更改:
m=(('p',1),)
a=dict(m, r=2)
b=dict(m, r=3)
您只需要对代码进行最小的更改:
m=(('p',1),)
a=dict(m, r=2)
b=dict(m, r=3)
不能像这样使用预定义的键值对,否,但还有其他选项:
- 您可以定义一个基本字典,然后用它更新
和a
:b
m = {'p': 1} a = {'r': 2} a.update(m) b = {'r': 3} a.update(m)
- 您可以使用
函数将两个词典合并成一个新词典,或添加其他键作为关键字参数:dict()
这需要使用其他键(如m = {'p': 1} a = dict(m, r=2) b = dict(m, r=3)
)。您可以使用r
语法来解决该限制:**
现在m = {'p': 1} a = dict(m, **{'r': 2}) b = dict(m, **{'r': 3})
可以是任何字符串r
- 您可以将键和值定义为单独的变量,并使用这些变量:
m_key, m_value = 'p', 1 a = {m_key: m_value, 'r': 2} b = {m_key: m_value, 'r': 3}
la_orange = {'los_angels': 'orange'}
what = {
sr: [{'los_angels': mg, 'sg': sg, 'ua': boston, 'new_york': seattle},
{'los_angels': mg, 'sg': sg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle},
{'los_angels': mg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle, 'apple': 'IS'},
{'los_angels': mg, 'new_york': seattle, 'apple': 'IS'}],
as: [{'los_angels': mg, 'ua': boston, 'new_york': seattle}, {'los_angels': mg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle, 'apple': 'IS'},
{'los_angels': mg, 'new_york': seattle, 'apple': 'IS'}],
dd: [dict(la_orange, new_york=seattle),
dict(la_orange, new_york=seattle, ua=boston),
dict(la_orange, new_york=seattle, apple='IS'),
dict(la_orange, new_york=seattle, ua=boston, apple='IS')],
a: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
b: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
c: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
d: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
e: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
f: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
g: [{}],
h: [{}],
i: [{}, {'los_angels': mg}],
}
如果需要组合多个这样的预定义词典,可以创建一个helper函数:
def combine_dicts(*d, **kw):
"""Combine dictionaries into one.
Keys in later dictionaries override those in earlier dictionaries, with
keyword arguments being applied last.
"""
return reduce(lambda d1, d2: dict(d1, **d2), d + (kw,))
然后将其用于:
a = combine_dicts(base1, base2, {'some non-identifier key': 42}, r=3)
不能像这样使用预定义的键值对,否,但还有其他选项:
- 您可以定义一个基本字典,然后用它更新
和a
:b
m = {'p': 1} a = {'r': 2} a.update(m) b = {'r': 3} a.update(m)
- 您可以使用
函数将两个词典合并成一个新词典,或添加其他键作为关键字参数:dict()
这需要使用其他键(如m = {'p': 1} a = dict(m, r=2) b = dict(m, r=3)
)。您可以使用r
语法来解决该限制:**
现在m = {'p': 1} a = dict(m, **{'r': 2}) b = dict(m, **{'r': 3})
可以是任何字符串r
- 您可以将键和值定义为单独的变量,并使用这些变量:
m_key, m_value = 'p', 1 a = {m_key: m_value, 'r': 2} b = {m_key: m_value, 'r': 3}
la_orange = {'los_angels': 'orange'}
what = {
sr: [{'los_angels': mg, 'sg': sg, 'ua': boston, 'new_york': seattle},
{'los_angels': mg, 'sg': sg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle},
{'los_angels': mg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle, 'apple': 'IS'},
{'los_angels': mg, 'new_york': seattle, 'apple': 'IS'}],
as: [{'los_angels': mg, 'ua': boston, 'new_york': seattle}, {'los_angels': mg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle, 'apple': 'IS'},
{'los_angels': mg, 'new_york': seattle, 'apple': 'IS'}],
dd: [dict(la_orange, new_york=seattle),
dict(la_orange, new_york=seattle, ua=boston),
dict(la_orange, new_york=seattle, apple='IS'),
dict(la_orange, new_york=seattle, ua=boston, apple='IS')],
a: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
b: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
c: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
d: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
e: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
f: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
g: [{}],
h: [{}],
i: [{}, {'los_angels': mg}],
}
如果需要组合多个这样的预定义词典,可以创建一个helper函数:
def combine_dicts(*d, **kw):
"""Combine dictionaries into one.
Keys in later dictionaries override those in earlier dictionaries, with
keyword arguments being applied last.
"""
return reduce(lambda d1, d2: dict(d1, **d2), d + (kw,))
然后将其用于:
a = combine_dicts(base1, base2, {'some non-identifier key': 42}, r=3)
不能像这样使用预定义的键值对,否,但还有其他选项:
- 您可以定义一个基本字典,然后用它更新
和a
:b
m = {'p': 1} a = {'r': 2} a.update(m) b = {'r': 3} a.update(m)
- 您可以使用
函数将两个词典合并成一个新词典,或添加其他键作为关键字参数:dict()
这需要使用其他键(如m = {'p': 1} a = dict(m, r=2) b = dict(m, r=3)
)。您可以使用r
语法来解决该限制:**
现在m = {'p': 1} a = dict(m, **{'r': 2}) b = dict(m, **{'r': 3})
可以是任何字符串r
- 您可以将键和值定义为单独的变量,并使用这些变量:
m_key, m_value = 'p', 1 a = {m_key: m_value, 'r': 2} b = {m_key: m_value, 'r': 3}
la_orange = {'los_angels': 'orange'}
what = {
sr: [{'los_angels': mg, 'sg': sg, 'ua': boston, 'new_york': seattle},
{'los_angels': mg, 'sg': sg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle},
{'los_angels': mg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle, 'apple': 'IS'},
{'los_angels': mg, 'new_york': seattle, 'apple': 'IS'}],
as: [{'los_angels': mg, 'ua': boston, 'new_york': seattle}, {'los_angels': mg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle, 'apple': 'IS'},
{'los_angels': mg, 'new_york': seattle, 'apple': 'IS'}],
dd: [dict(la_orange, new_york=seattle),
dict(la_orange, new_york=seattle, ua=boston),
dict(la_orange, new_york=seattle, apple='IS'),
dict(la_orange, new_york=seattle, ua=boston, apple='IS')],
a: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
b: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
c: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
d: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
e: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
f: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
g: [{}],
h: [{}],
i: [{}, {'los_angels': mg}],
}
如果需要组合多个这样的预定义词典,可以创建一个helper函数:
def combine_dicts(*d, **kw):
"""Combine dictionaries into one.
Keys in later dictionaries override those in earlier dictionaries, with
keyword arguments being applied last.
"""
return reduce(lambda d1, d2: dict(d1, **d2), d + (kw,))
然后将其用于:
a = combine_dicts(base1, base2, {'some non-identifier key': 42}, r=3)
不能像这样使用预定义的键值对,否,但还有其他选项:
- 您可以定义一个基本字典,然后用它更新
和a
:b
m = {'p': 1} a = {'r': 2} a.update(m) b = {'r': 3} a.update(m)
- 您可以使用
函数将两个词典合并成一个新词典,或添加其他键作为关键字参数:dict()
这需要使用其他键(如m = {'p': 1} a = dict(m, r=2) b = dict(m, r=3)
)。您可以使用r
语法来解决该限制:**
现在m = {'p': 1} a = dict(m, **{'r': 2}) b = dict(m, **{'r': 3})
可以是任何字符串r
- 您可以将键和值定义为单独的变量,并使用这些变量:
m_key, m_value = 'p', 1 a = {m_key: m_value, 'r': 2} b = {m_key: m_value, 'r': 3}
la_orange = {'los_angels': 'orange'}
what = {
sr: [{'los_angels': mg, 'sg': sg, 'ua': boston, 'new_york': seattle},
{'los_angels': mg, 'sg': sg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle},
{'los_angels': mg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle, 'apple': 'IS'},
{'los_angels': mg, 'new_york': seattle, 'apple': 'IS'}],
as: [{'los_angels': mg, 'ua': boston, 'new_york': seattle}, {'los_angels': mg, 'new_york': seattle},
{'los_angels': mg, 'ua': boston, 'new_york': seattle, 'apple': 'IS'},
{'los_angels': mg, 'new_york': seattle, 'apple': 'IS'}],
dd: [dict(la_orange, new_york=seattle),
dict(la_orange, new_york=seattle, ua=boston),
dict(la_orange, new_york=seattle, apple='IS'),
dict(la_orange, new_york=seattle, ua=boston, apple='IS')],
a: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
b: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
c: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
d: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
e: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
f: [{}, {'ua': boston}, {'new_york': seattle}, {'new_york': seattle, 'ua': boston}],
g: [{}],
h: [{}],
i: [{}, {'los_angels': mg}],
}
如果需要组合多个这样的预定义词典,可以创建一个helper函数:
def combine_dicts(*d, **kw):
"""Combine dictionaries into one.
Keys in later dictionaries override those in earlier dictionaries, with
keyword arguments being applied last.
"""
return reduce(lambda d1, d2: dict(d1, **d2), d + (kw,))
然后将其用于:
a = combine_dicts(base1, base2, {'some non-identifier key': 42}, r=3)
好的,让我们把事情变得更一般,假设我在一些字典中有n个这样的常用条目:)我有一些自定义条目:)@Yeti:前两种方法可以处理任意大小的基础字典进行扩展。这不是我需要的,因此,我添加了我的问题的一个废弃版本:)这基本上是一个配置对象定义:)@Yeti:其中每一个带有
{'los_angels':'orange'}
的字典都可以用第二个选项来处理。是的,但是如果我有更多的元素,它们就不容易一起使用:a={'los_angels':'orange},b={'ua':boston}不能写为dict(a,b,s=2)composibility这不是直截了当的:)好吧,让我们把事情变得更一般,假设我在一些dict中有n个这样的常用条目:)我有一些自定义条目:)@Yeti:前两种方法可以处理任何大小的基础字典进行扩展。这不是我需要的,因此,我添加了我的问题的一个废弃版本:)这基本上是一个配置对象定义:)@Yeti:其中每一个带有{'los_angels':'orange'}
的字典都可以用第二个选项来处理。是的,但是如果我有更多的元素,它们就不容易一起使用:a={'los_angels':'orange},b={'ua':boston}不能写为dict(a,b,s=2)composibility这不是直截了当的:)好吧,让我们把事情变得更一般,假设我在一些dict中有n个这样的常用条目:)我有一些自定义条目:)@Yeti:前两种方法可以处理任何大小的基础字典进行扩展。这不是我需要的,因此,我添加了我的问题的一个废弃版本:)这基本上是一个配置对象定义:)@Yeti:其中每一个带有{'los_angels':'orange'}
的字典都可以用第二个选项来处理。是的,但是如果我有更多的元素,它们就不容易一起使用:a={'los_angels':'orange},b={'ua':boston}不能写为dict(a,b,s=2)复合性它不是直截了当的:)O