python - 如何定义读取字符串元组的函数

标签 python string python-2.7 python-3.x tuples

我写了这段代码:

`

def key_gen(l):
   lettersi = ()
   for a in range(l[0], l[4]):
      letters1 = lettersi + (a,)
   for b in range(l[5], l[9]):
      letters2 = lettersi + (b,)
   for c in range(l[10], l[14]):
      letters3 = lettersi + (c,) 
   for d in range(l[15], l[19]):
      letters4 = lettersi + (d,)
   for e in range(l[20], l[24]):
      letters5 = lettersi + (e,)
   key = letters1 + letter2+ letter3 + letters4 + letters5
   return key

`

我运行它,当我在 python shell 上时...:

letters = ('A','B','C','D','E','F', 'G','H','I','J', ' ', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Z', '.')

    >>>key_gen(letters)

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in key_gen
    TypeError: 'str' object cannot be interpreted as an integer

我不知道我在这里犯了什么错误,因为我是Python的初学者,但我希望输出是这样的。您知道如何修复它吗?

>>>key_gen(letters)


((‘A’, ‘B’, ‘C’, ‘D’, ‘E’), (‘F’, ‘G’, ‘H’, ‘I’, ‘J’), (‘ ’, ‘L’, ‘M’, ‘N’, ‘O’), (‘P’, ‘Q’, ‘R’, ‘S’, ‘T’), (‘U’, ‘V’, ‘X’, ‘Z’, ‘.’))

也许我定义的函数无法读取字符串元组,但我不知道该怎么做,而且我已经用谷歌搜索了它,但找不到任何东西。

最佳答案

range()期望其参数为 int 类型,通过传递 l[0],您实际上将其作为 char 'A' 传递。我认为你想做的是:

for a in range(0, 4):
      letters1 = lettersi + (l[a],)

# instead of:
# for a in range(l[0], l[4]):
#       letters1 = lettersi + (a,)

有一些现有的方法可以实现您想要实现的目标。引用:How do you split a list into evenly sized chunks? 。但那里没有提到我会做什么。我的方法是使用列表切片列表理解:

>>> [letters[i:i+5] for i in range(0, len(letters), 5)]
[('A', 'B', 'C', 'D', 'E'), ('F', 'G', 'H', 'I', 'J'), (' ', 'L', 'M', 'N', 'O'), ('P', 'Q', 'R', 'S', 'T'), ('U', 'V', 'X', 'Z', '.')]

关于python - 如何定义读取字符串元组的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40182027/

相关文章:

python - 计算数据框中特定值的出现次数,其中所有可能的值都由列表定义

python - 如何循环遍历空格列表并在特定情况下将空格分配到另一个列表?

javascript - FCC 中间算法脚本 : Pig Latin

Python 十进制并导入 : How to use ROUND_UP without 'import *' ?

Python __init__.py 和类

Python Socket(如何将文件名与文件内容分开)

python - 日期时间 dtype 是对象而不是日期时间

python - 在 Pypi 包中包含静态文件

c++ - C++ setter 函数崩溃

python - 如何获取我之前使用其类找到的图像的 xpath?