gpt4 book ai didi

python - 是否可以将 for 循环中的值放入列表中?

转载 作者:行者123 更新时间:2023-11-30 22:22:23 24 4
gpt4 key购买 nike

我正在尝试编写一个程序来破解具有已知 key 矩阵的希尔密码,当我输入密文并将字母转换为数字时,我使用这个 for 循环:

letters = 'abcdefghijklmnopqrstuvwxyz'

ciphertext = input('Enter your ciphertext')
ciphertext = list(ciphertext.lower())

for symbol in ciphertext:
num = int(letters.find(symbol))
print(num)

我想知道是否有一种方法可以将打印的数字传输到数组中,我用它来表示希尔密码中涉及的矩阵,因为我需要将每个 2 个字母的 block 插入到一个数组中。 2x1矩阵,对每个矩阵进行矩阵乘法,得到明文。

基本上,我试图以最有效的方式将 for 循环中的数字放入数组中,但我对 python 编码非常陌生,所以我不知道如何做到这一点。

另外,是否有一种更简单的方法可以在 python 中使用矩阵,我不知道这会让整个事情变得更容易?

最佳答案

您似乎想要在列表中返回字符的 ASCII 值。您可以通过列表理解在线性时间内完成此操作。

symbols = 'axy12c'

lst = [ord(c) - ord('a') if c.isalpha() and c.islower() else -1 for c in symbols]

print(lst)
[0, 23, 24, -1, -1, 2]
<小时/>

既然你提到了数组,那么还有一种简单的方法可以做到这一点,你瞧。

arr = np.array(list(symbols), dtype='|S1').view(np.int8) - 97
arr[(0 > arr) | (25 < arr)] = -1

print(arr)
array([ 0, 23, 24, -1, -1, 2], dtype=int8)

关于python - 是否可以将 for 循环中的值放入列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48336963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com