注册 登录
编程论坛 Python论坛

关于判断和写入列表的问题

ilsoviet1917 发布于 2021-08-13 10:58, 1469 次点击
程序代码:
dicts = {'a':'1',
         'b':'2',
         'c':3,
         '1':'a',
         '2':'b',
         '3':'c',}

string = input('str: ')
re = []


如果输入abc就显示123,如果输入123就显示Oa、Ob、Oc。结果输入列表re
在不改变字典的值的情况下,“Oa、Ob、Oc”的输出怎么实现呢?

如果1、2、3这三个键的类型是Int,通过isdigit或isalpha来分别判断是不是可以实现呢?

再追加一个问题,如果有'ac':666,在控制台输入键,打印值,怎么在输入'ac'后打印的是666而不是13呢?

[此贴子已经被作者于2021-8-13 11:16编辑过]

4 回复
#2
古1232021-08-13 12:41
程序代码:

string = input('str:')
if string in ['1','2','3']:
    print(f'0{dicts[string]}')
else:
    print(f'{dicts[string]}')

后一个问题我猜测你是读取一个字符得到在dicts中的值所以会出现'a''c'连起来'1''3'。
在python中正确读取字典语法是 字典名[键] 也就是比如在dicts里读取'ac'即dicts['ac']
#3
ilsoviet19172021-08-16 14:53
以下是引用古123在2021-8-13 12:41:19的发言:


string = input('str:')
if string in ['1','2','3']:
    print(f'0{dicts[string]}')
else:
    print(f'{dicts[string]}')
后一个问题我猜测你是读取一个字符得到在dicts中的值所以会出现'a''c'连起来'1''3'。
在python中正确读取字典语法是 字典名[键] 也就是比如在dicts里读取'ac'即dicts['ac']


if string in ['1','2','3']:
    print(f'0{dicts[string]}')
如果字典里只有1、2、3这三个键还行,如果是好多个键值对呢?
还有第二个回答没看太懂,能举个例子吗?
#4
古1232021-08-17 00:07
回复 3楼 ilsoviet1917
可以写个文本读取。或者有啥规则吗?
字典可以键值是字符串格式的,所以可以使用f""这样格式化

你的第二个问题我没看到你的代码,猜测你是依次读取了dicts['a']和dicts['b']。
如果想要读取ac的话直接dicts['ac']就好了


[此贴子已经被作者于2021-8-17 00:11编辑过]

#5
ilsoviet19172021-08-25 17:17
回复 4楼 古123
追加一个问题,之前您提到的
if string in ['1','2','3']:
    print(f'0{dicts[string]}')
可以使用f''格式化输出,如果我想输入“123”输出0123呢?就是仅仅在数字字符串首位加一个0.

str = input('str:')
re = []
for s in str:
    if s.isdigit():
        re.append(f'0{dicts[s]}')

这种办法不行,这种办输入123,输出的是010203

[此贴子已经被作者于2021-8-25 17:24编辑过]

1