输出字符串前10不同字符
优快云“每日一练”(python)题目:输入一个字符串,把左边10个不重复的字符(大小写算不同字符),挑选出来。如不重复的字符不到10个则按实际数目输出。
练习题目
原题答案
我的想法:用列表存放不同字符,如输入多于10个不同字符,够10停止遍历输入字符,最后用’'字符联接字符列表输出,代码性能应该优于“集合与字符串相加”组合。(有文章说Python字符串相加,相当于每次都会遍历字符串,性能不咋滴。而联接字符串列表,就一次操作,代码性能优于前者。所以,我一般能用列表联接都不用字符串相加的了。)这样子,是真的好些么?🤪
我的代码运行效果
可以看出,Python字符串对齐排版,对中文字符是不“友好”滴。😭😭
python完整代码
(如果从语句注释不能清楚作用,请评论区留言指教和探讨。🤝)
# coding: utf-8
'''输出字符串中不重复的字符'''
s = '''
输入一个字符串,把左边
10个不重复的字符(大小写算不
同字符),挑选出来。如不重复的
字符不到10个则按实际数目输出。
'''
blank = ' '
line = '﹊'*21
print(f'\n\n{line}\n{s}\n{line}\n')
s = input(f'\n\n{"输入字符串":_^37}\n\n$>> ')
s_out = [] #定义列表盛放前10不同字符(不足10以实际数目输出)。
for i in s:
if len(s_out)==10:
break #不同字符够10,退出遍历循环。
if i not in s_out: #字符不在前10列表,追加字符。
s_out.append(i)
print(f'\n\n输入字符串:{s}\n{line}\n\n不重复的字符:\n{"".join(s_out):_^36}\n\n{line}\n')
我的博文推荐:
- 尼姆游戏(聪明版首发)(当前阅读3220)
- 尼姆游戏代码优化版(当前阅读815)
- 字符串统计(当前阅读1553)
- 求列表平衡点(当前阅读1693)
- 密码强度检测器(当前阅读1662)
- 电话拨号键盘的字母组合(当前阅读1204)
- 柱状图中最大矩形(当前阅读1477)
- 排序数组中查找元素的重复起止位置(当前阅读1194)
推荐条件
点阅破千
参考文章:
上一篇: 寻找两个数组的中位数
下一篇: 练习:两数相加(链表逆序存储求和数字)

精品文章:
- OPP三大特性:封装中的property
- 通过内置对象理解python'
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
来源:老齐教室