Python 有没有办法让列表包含所有索引

Python 有没有办法让列表包含所有索引,python,python-3.x,Python,Python 3.x,我一直在尝试列出已知行列表中的所有常见单词的可能性。 然而,问题是,因为我使用的是“for循环”,每次“i”上升一个,列表就会重置,因此代码最终会以小写形式打印列表的最后一个索引。 是否有一种方法可以将列表的所有索引放入函数并一起返回?基本上,我可以在函数外部创建一个不敏感的字符串列表,这样每次使用函数时它都不会重置列表吗 def case_insensitive(*texts) : insensitive_string = [] for text in texts :

我一直在尝试列出已知行列表中的所有常见单词的可能性。 然而,问题是,因为我使用的是“for循环”,每次“i”上升一个,列表就会重置,因此代码最终会以小写形式打印列表的最后一个索引。 是否有一种方法可以将列表的所有索引放入函数并一起返回?基本上,我可以在函数外部创建一个不敏感的字符串列表,这样每次使用函数时它都不会重置列表吗

def case_insensitive(*texts) :
    insensitive_string = []
    for text in texts :
        insensitive_string.extend [text.lower(),text.upper(),text.capitalize()]
    return (insensitive_string)

known_in_lines = ["hello" ,
                 "hi" ,
                 "what's up" ,
                 "how are you doing" ,
                 "how was your day" ]

for i in range (0,len(known_in_lines)) :
    insensitive_string = case_insensitive(known_in_lines[i])

print (insensitive_string)

extend方法存在一些语法问题(现已修复),打印输出与迭代计数器一起嵌套到循环中,以实现可见性:

def case_insensitive(*texts):
    insensitive_string = []
    for text in texts:
        insensitive_string.extend([text.lower(),
                                   text.upper(),
                                   text.capitalize()
        ])
    return insensitive_string

known_in_lines = ["hello",
                  "hi",
                  "what's up",
                  "how are you doing",
                  "how was your day"
                  ]

for num, i in enumerate(range(len(known_in_lines))):
    insensitive_string = case_insensitive(known_in_lines[i])
    print(num)
    print (insensitive_string)

print(case_insensitive(*known_in_lines))
产生:

0
['hello', 'HELLO', 'Hello']
1
['hi', 'HI', 'Hi']
2
["what's up", "WHAT'S UP", "What's up"]
3
['how are you doing', 'HOW ARE YOU DOING', 'How are you doing']
4
['how was your day', 'HOW WAS YOUR DAY', 'How was your day']

['hello', 'HELLO', 'Hello', 'hi', 'HI', 'Hi', "what's up", "WHAT'S UP", "What's up", 'how are you doing', 'HOW ARE YOU DOING', 'How are you doing', 'how was your day', 'HOW WAS YOUR DAY', 'How was your day']

您可以在循环中扩展列表,但事实上,如果您给它提供许多参数,
不区分大小写
函数正是这样做的。只要做:

insensitive_string = case_insensitive(*known_in_lines)
您将获得:

['hello', 'HELLO', 'Hello', 'hi', 'HI', 'Hi', "what's up", "WHAT'S UP", "What's up", 'how are you doing', 'HOW ARE YOU DOING', 'How are you doing', 'how was your day', 'HOW WAS YOUR DAY', 'How was your day']

你的预期输出是什么?…只是为了简化代码:让它成为已知行中的行:这不就是将
打印
放入
for
循环中的问题吗?[[“你好”,“你好”,“你好”,“你好”,“你好”,“你好”,“你好”],…]mikuszefski,是的。。。。这其实是个不错的主意。但是,是的,我试过了。它不起作用。