python - python字典中某个键中的任何值

标签 python dictionary

在 python 中,我有一个名为的字典

 d = {('A', 'A', 'A'):1, ('A', 'A', 'B'):1, ('A', 'A', 'C'):1, ('A', 'B', 'A'): 2, ('A', 'B','C'):2, ...}.

有没有一种简单的方法来改变 for 的值(例如,到 10),当键是,例如 ('A', 'A', _) where _ 可以是任何字符 A~Z ?

所以,它看起来像 {('A', 'A', 'A'):10, ('A', 'A', 'B'):10, ('A', 'A', 'C'):10, ('A', 'B', 'A'): 2, ('A', 'B', 'C'):2, ...} 最后。

至于现在,我正在为 ('A', 'A', x) 使用带有变量 x 的循环,但我想知道是否python中有这样的关键字。

感谢您的提示。

最佳答案

只检查每个元组的前两个元素,最后一个是无关紧要的,除非你特别想确保它也是一个字母:

for k  in d:
    if k[0] == "A" and k[1] == "A":
        d[k] = 10
print(d)
{('A', 'B', 'A'): 2, ('A', 'B', 'C'): 2, ('A', 'A', 'A'): 10, ('A', 'A', 'C'): 10, ('A', 'A', 'B'): 10}

如果最后一个元素实际上也必须是 alpha 则使用 str.isalpha:

d = {('A', 'A', '!'):1, ('A', 'A', 'B'):1, ('A', 'A', 'C'):1, ('A', 'B', 'A'): 2, ('A', 'B','C'):2}

for k in d:
    if all((k[0] == "A", k[1] == "A", k[2].isalpha())):
        d[k] = 10
print(d)
{('A', 'B', 'A'): 2, ('A', 'B', 'C'): 2, ('A', 'A', '!'): 1, ('A', 'A', 'C'): 10, ('A', 'A', 'B'): 10}

d[('A', 'A', _)]=10 没有关键字可以工作,您可以使用 map 和 python2 破解函数式方法:

d = {('A', 'A', 'A'):1, ('A', 'A', 'B'):1, ('A', 'A', 'C'):1, ('A', 'B', 'A'): 2, ('A', 'B','C'):2}

map(lambda k: d.__setitem__(k, 10) if ((k[0], k[1]) == ("A", "A")) else k, d)

print(d)
{('A', 'B', 'A'): 2, ('A', 'B', 'C'): 2, ('A', 'A', 'A'): 10, ('A', 'A', 'C'): 10, ('A', 'A', 'B'): 10}

或包括 isalpha:

d = {('A', 'A', '!'):1, ('A', 'A', 'B'):1, ('A', 'A', 'C'):1, ('A', 'B', 'A'): 2, ('A', 'B','C'):2}

map(lambda k: d.__setitem__(k, 10) if ((k[0], k[1],k[2].isalpha()) == ("A", "A",True)) else k, d)

print(d)

关于python - python字典中某个键中的任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30384509/

相关文章:

python - 如何从图像的热图数据生成边界框数据?

arrays - 如何快速获取Dictionary中特定对象的索引

C# - 根据修改日期和创建日期对字典进行排序

excel - 两个字典相交

c# - 如何用数组值初始化字典?

java - java中存储信息

python - 了解subprocess.TimeoutExpired,想在超时发生后杀死一个子进程

python ,SQL : How to update multiple rows and columns in a single trip around the database?

python - 无法在 Centos 6.5 上安装 policycoreutils-python

Python:单独的进程记录到同一个文件?