标题:关于判断和写入列表的问题
取消只看楼主
ilsoviet1917
Rank: 2
等 级:论坛游民
帖 子:103
专家分:26
注 册:2010-5-11
结帖率:84.21%
已结贴  问题点数:20 回复次数:2 
关于判断和写入列表的问题
程序代码:
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编辑过]

搜索更多相关主题的帖子: 列表 判断 写入 输入 打印 
2021-08-13 10:58
ilsoviet1917
Rank: 2
等 级:论坛游民
帖 子:103
专家分:26
注 册:2010-5-11
得分:0 
以下是引用古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这三个键还行,如果是好多个键值对呢?
还有第二个回答没看太懂,能举个例子吗?
2021-08-16 14:53
ilsoviet1917
Rank: 2
等 级:论坛游民
帖 子:103
专家分:26
注 册:2010-5-11
得分:0 
回复 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编辑过]

2021-08-25 17:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-506508-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014355 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved