在字典中查找数字并用python打印

在字典中查找数字并用python打印,python,dictionary,Python,Dictionary,我有一本字典 如果我输入A=2,B=4 代码已将字典从02打印到04 我不想使用切片,但我找不到这样做的方法 有人知道怎么做吗?您可以通过以下方式从输入中手动构造键: 将输入转换为整数 从范围(a,B+1) 将量程功能的输出转换回带前导零的stings 编辑: 示例w/简单循环: A = int(input("A: ")) B = int(input("B: ")) a={“07”:3, "08": 99, "09": 2, "10": 55, "11": -5, "12": 1} A

我有一本字典

如果我输入
A=2,B=4

代码已将字典从
02
打印到
04

我不想使用切片,但我找不到这样做的方法


有人知道怎么做吗?

您可以通过以下方式从输入中手动构造键:

  • 将输入转换为整数
  • 范围(a,B+1)
  • 将量程功能的输出转换回带前导零的stings
编辑:

示例w/简单循环:

A = int(input("A: "))

B = int(input("B: "))
a={“07”:3,
"08": 99,
"09": 2,
"10": 55,
"11": -5,
"12": 1}
A=8#输入()的结果。。。
B=11
键=[]
对于范围(A、B+1)内的i:
如果我试试这个:

a = {   "07": 3,
        "08": 99,
        "09": 2,
        "10": 55,
        "11": -5,
        "12": 1}

A = 8    # result of input()...
B = 11

keys = []
for i in range(A, B+1):
    if i <10:
        temp = ''.join(['0', str(i)])
        keys.append(temp)
    else:
        keys.append(str(i))


for key in keys:
    print(key, a.get(key))
输出:

A = int(input("A: "))

B = int(input("B: "))

dictionary = {"05": 1, "04": 2, "03": 3, "02": 4, "01": 5}

for n in range(A, B):
    print(dictionary[f"{n+1}.zfill(2)])

您可以在这里使用一个简单的for循环,如下所示:

A: 2
B: 4
3
2
或者,您可以使用字典理解来获取筛选项的新字典:

it = filter(lambda item: int(item[0]) >= A and int(item[0]) <= B, d.items())
for item in it:
    print(item)

sub_dict={k:v代表k,v在d中。items()如果int(k)>=A和int(k),我考虑过这一点,但有什么{“11”:5}在字典中?那么前导零的解决方案就行不通了。好吧,你需要为字典中的键定义一些规则。如果只是对于小于10的数字有一个前导零,你可以用一个条件语句来处理这种情况,将前导零相加。
it = filter(lambda item: int(item[0]) >= A and int(item[0]) <= B, d.items())
for item in it:
    print(item)
sub_dict = {k:v for k,v in d.items() if int(k) >= A and int(k) <= B}
print(sub_dict)