![](/img/trans.png)
[英]Python pandas check if the last element of a list in a cell contains specific string
[英]Check if Python list contains a specific element
我編寫了一個示例程序來從輸入生成哈希碼(它還沒有完成,所以你看不到它實際生成哈希的部分):
import hashlib
def isInputValid(input, validInput=[]):
for i in validInput:
if validInput[i] == input: # error generated here
return True
pass
i = i + 1
return False
pass
sha1hash = hashlib.sha1()
choiceValidInputs = ["1", "2"]
print ("Welcome to hash generator!\n")
print ("[1] -- generate hash from input")
print ("[2] -- quit")
choice = input("\nWhat do you want to do? ")
if not isInputValid(choice, choiceValidInputs):
print ("Invalid option; try again")
choice = input("What do you want to do? ")
if choice == "1":
print ("\n[1] SHA1/SHA256")
print ("[2] SHA512")
hashType = input("\nWhat hash type do you want? ")
...
elif choice == "2":
print ("Goodbye!")
quit()
我的終端窗口:
kali@kali:~$ python3 /home/bin/hashgenerator.py
Welcome to hash generator!
[1] -- generate hash from input
[2] -- quit
What do you want to do? 1
Traceback (most recent call last):
File "/home/bin/hashgenerator.py", line 19, in <module>
if isInputValid(choice, choiceInput)==False:
File "/home/bin/hashgenerator.py", line 5, in isInputValid
if validInput[i] == input:
TypeError: list indices must be integers or slices, not str
kali@kali:~$
我想檢查輸入是否存在於choiceValidInputs
。 我實際上並不真正知道如何在 Python 中使用列表等。
謝謝你的幫助
您正在遍歷元素而不是索引
如果要使用索引:
def isInputValid(input, validInput=[]):
for i in range(len(validInput)):
if validInput[i] == input: # error generated here
return True
如果你想使用元素,你可以這樣做
def isInputValid(input, validInput=[]):
for i in validInput:
if i == input: # error generated here
return True
但是你可以更輕松地做到這一點。 更正確:)
def isInputValid(input, validInput=[]):
return input in validInput
for i in validInput:
if validInput[i] == input:
i
這里不是validInput
項目的索引,它是項目本身。 你想要做的是:
for i in validInput:
if i == input:
此外,您不需要下面的pass
和i = i+1
。 我建議將變量input
重命名為其他內容,以避免與input()
函數混淆。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.