鱼C论坛

 找回密码
 立即注册
查看: 1261|回复: 5

[已解决]python的join问题

[复制链接]
发表于 2022-3-2 13:08:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
任务:编写一个程序,实现基本的字符串压缩功能。比如,字符串 FFiiiisshCCCCCC 压缩后变成 F2i4s2h1C6(15字符 -> 10字符,66% 压缩率)。
这种朴素的压缩算法并不总是理想的,比如 FFishCC 压缩后反而变长了 F2i1s1h1C2,这可就不是我们想要的了,所以对于重复次数小于 3 的字符,我们的程序应该选择不对其进行压缩。
press = input("请输入待压缩的字符串:")
length = len(press)
result = []
for each in press:
    count = press.count(each)
    if count > 2:
        if result.count(each) == 0:
            result.append(each)
            result.append(count)
        else:
            continue
    else:
        result.append(each)
        continue
length_1 = len(result)
percent = length_1 / length
print(result)
print("压缩后的字符串:","".join(result))
print("压缩率为:" , "{:%}".format(percent))

1.想问下各位大佬,这里逻辑应该没问题,为什么最后输出的时候join这个函数有问题 ,该怎么修改 谢谢
最佳答案
2022-3-2 19:01:49
要考虑字符出现的顺序吧,不然这样的压缩,显然会失真呀。。'FFishCCFFF' 你压缩后,是'F5ishCC'? ——这样你怎么解压还原回去?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-2 13:17:41 | 显示全部楼层
大佬们我明白了 应该把count的那个转化为字符串就行 里面是整形
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-3-2 13:22:16 | 显示全部楼层
press = input("请输入待压缩的字符串:")
length = len(press)
result = []
for each in press:
    count = press.count(each)
    if count > 2:
        if result.count(each) == 0:
            result.append(each)
            result.append(str(count))  # 改成字符
        else:
            continue
    else:
        result.append(each)
        continue
length_1 = len(result)
percent = length_1 / length
print(result)
print("压缩后的字符串:", "".join(result))
print("压缩率为:", "{:%}".format(percent))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 1

使用道具 举报

发表于 2022-3-2 15:14:56 | 显示全部楼层
字符串.join(列表),列表中元素应均为字符串类型,不然会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-2 19:01:49 | 显示全部楼层    本楼为最佳答案   
要考虑字符出现的顺序吧,不然这样的压缩,显然会失真呀。。'FFishCCFFF' 你压缩后,是'F5ishCC'? ——这样你怎么解压还原回去?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-3 09:39:46 | 显示全部楼层
阿奇_o 发表于 2022-3-2 19:01
要考虑字符出现的顺序吧,不然这样的压缩,显然会失真呀。。'FFishCCFFF' 你压缩后,是'F5ishCC'? ——这样 ...

有道理艾
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 06:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表