练习:输出字符串的前10个不同字符(join联接列表字符元素输出字符串)

该博客分享了如何使用Python高效地找出输入字符串中前10个不重复字符的解决方案,讨论了字符串操作性能和列表联接的优势,并展示了代码实例和中文字符显示问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



输出字符串前10不同字符


   优快云“每日一练”(python)题目:输入一个字符串,把左边10个不重复的字符(大小写算不同字符),挑选出来。如不重复的字符不到10个则按实际数目输出。

  1. 题目
  2. 原题答案
  3. 代码运行效果
  4. 完整代码

练习题目

在这里插入图片描述


回首页

原题答案

在这里插入图片描述


回首页

   我的想法:用列表存放不同字符,如输入多于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')

回首页

我的博文推荐:

推荐条件 点阅破千

参考文章:


上一篇:寻找两个数组的中位数
下一篇:练习:两数相加(链表逆序存储求和数字)


回首页

老齐漫画头像

精品文章:

来源:老齐教室


优快云实用技巧博文:


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦幻精灵_cq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值