社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python3-如何切换字典的大小写,然后添加数值

Finstercode • 5 年前 • 1471 次点击  

所以我有这根绳子

"Hello"

我想把它转换成一个带空值的大写字典 类似于:

{ "H":0, "E":0, "L":0, "L":0, "O":0 }

然后我想使用for循环将一系列值应用到值槽中:

{ "H":1, "E":2, "L":3, "L":4, "O":5 }

最后,使用这些值将字母及其赋值打印出来,如下所示:

"HEELLLLLLLOOOOO" 
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/48084
 
1471 次点击  
文章 [ 1 ]  |  最新文章 5 年前
timgeb
Reply   •   1 楼
timgeb    6 年前

你拿到第一本字典

>>> s = "Hello"
>>> d = dict.fromkeys(s.upper(), 0)
>>> d
>>> {'E': 0, 'H': 0, 'L': 0, 'O': 0}

注意钥匙 'L' 只出现一次,因为字典键是唯一的。

因此,您想要的第二本词典是不可能创建的。

但如果只关心最后一个字符串,则不必创建任何dict,因为:

>>> ''.join(c*i for i, c in enumerate(s.upper(), 1))
>>> 'HEELLLLLLLOOOOO'

如果这看起来很复杂,就用一个简单的 for 循环。

>>> to_join = []
>>> for i, c in enumerate(s.upper(), 1):
...:    to_join.append(c*i)
...:    
>>> result = ''.join(to_join)
>>> result
>>> 'HEELLLLLLLOOOOO'