嗨所以我想以
的形式生成python字母的dict {'a':'a', 'b':'b', 'c':'c'....}
链接here非常有用,但是当我用string.ascii.lowercase替换那里的最后一个0时,我得到了这个:
{'a': 'abcdefghijklmnopqrstuvwxyz', 'b': 'abcdefghijklmnopqrstuvwxyz', 'c': 'abcdefghijklmnopqrstuvwxyz'...}
那么,我该如何解决这个问题?
答案 0 :(得分:2)
您可以尝试这种方式:
dict([(character,character) for character in string.ascii_lowercase])
或另一个:
dict(zip(string.ascii_lowercase,string.ascii_lowercase))
答案 1 :(得分:0)
characters = {}
for character in string.ascii.lowercase:
characters[character] = character
答案 2 :(得分:0)
以下是制作转换字典的一种方法:
def shiftDict(i):
i = i % 26
alpha = 'abcdefghijklmnopqrstuvwxyz'
return dict(zip(alpha,alpha[i:] + alpha[:i]))
原始问题shiftDict(0)
会返回您要求的内容。
另一个例子:
>>> d = shiftDict(3)
>>> d
{'u': 'x', 'w': 'z', 'e': 'h', 'r': 'u', 'o': 'r', 'c': 'f', 'x': 'a', 'i': 'l', 'k': 'n', 't': 'w', 'h': 'k', 'j': 'm', 'b': 'e', 'l': 'o', 'y': 'b', 'f': 'i', 's': 'v', 'q': 't', 'm': 'p', 'd': 'g', 'v': 'y', 'p': 's', 'g': 'j', 'z': 'c', 'n': 'q', 'a': 'd'}
但是对于Caesar转变 - 您可能希望使用字符串translate
方法。
答案 3 :(得分:0)
使用字典和范围怎么办?
>>> dict = {chr(ord('a') + i) : chr(ord('a') + i) for i in range(26)}
>>> dict
{'a': 'a', 'c': 'c', 'b': 'b', 'e': 'e', 'd': 'd', 'g': 'g', 'f': 'f', 'i': 'i', 'h': 'h', 'k': 'k', 'j': 'j', 'm': 'm', 'l': 'l', 'o': 'o', 'n': 'n', 'q': 'q', 'p': 'p', 's': 's', 'r': 'r', 'u': 'u', 't': 't', 'w': 'w', 'v': 'v', 'y': 'y', 'x': 'x', 'z': 'z'}
您可以创建通用函数
def gen_alpha_range(start, count):
return {chr(ord(start) + i) : chr(ord(start) + i) for i in range(count)}
result = gen_alpha_range('A', 5)
print(result)
>>> {'A': 'A', 'C': 'C', 'B': 'B', 'E': 'E', 'D': 'D'}
答案 4 :(得分:0)
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import time
# Data for plotting
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)
fig, ax = plt.subplots()
ax.plot(t, s)
ax.set(xlabel='time (s)', ylabel='voltage (mV)',
title='About as simple as it gets, folks')
ax.grid()
plt.show()
while True:
print('finished')
time.sleep(1)
它将返回包含所有小写字母的列表。