[英]How can I find if a word (string) occurs more than once in an input/list in python
[英]How would I reference something akin to an input more than once with list comp in Python?
例如,這個用於輸出單詞中間字符的簡單代碼 - 如果它有中間字符。
string = str(input("String: "))
print(list(letter for letter in string if letter == string[((len(string) - 1) // 2)]))
我可以在列表 comp 中輸入輸入,同時仍然能夠在另一部分引用它的長度嗎? 通常我用我在 list comp 中的輸入做這樣的事情:
print(''.join(str(y) for y in [x for x in str(input("Please enter a string: "))
if x.isnumeric() == False]))
只是想了解更多關於 list comp 的可能性。
一種方法是將其存儲在自己的列表中並使用for
string = input("String: ")
會成為
for string in [input("String: ")]
>>> print([letter for string in [input("String: ")] for letter in string if letter == string[(len(string) - 1) // 2]])
String: abcde
['c']
格式化為多行:
>>> print(
... [letter for string in [input("String: ")]
... for letter in string
... if letter == string[(len(string) - 1) // 2]]
... )
此外,您的邏輯可能有不良行為。
String: abcdecccccc
['c', 'c', 'c', 'c', 'c', 'c', 'c']
如果我想把這樣的東西塞進一行,我會使用lambda
:
>>> print((lambda x: x[(len(x) - 1) // 2])(input()))
middle
d
不過,在這種情況下,我認為通過在自己的行上進行變量賦值可以大大提高可讀性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.