返回列表中 true/false 的错误值
Returning wrong values of true/false in list
问题
WRITE 代码检查 'N' 英文单词列表是否可以仅使用键盘的一行来书写。如果是这种情况,请制作一个包含 'True' 或 'False' 选项的列表。
输入:
第一行必须读取 'N' 的值。
第二行开始读 'N' 字
示例:如果 N = 3 的值,则英语单词列表为 [POTTER, EQUITY, LIRIL] 则输出为 [True, True, False]
我的代码
N=int(input("enter number of elements: "))
words=input("enter the words separated by a space: ")
wl=words.split()
print("list of words is" , wl)
l2=[]
final=[]
a=['q','w','e','r','t','y','u','i','o','p']
if N<0:
print("Invalid Input")
else:
for i in range(0,N):
ele=wl[i]
l2.append(ele)
new=ele.split()
if new <=a:
re1='True'
final.append(re1)
else:
re2='False'
final.append(re2)
print(final)
最终列表显示真实,即使使用了键盘其他行的字母。谁能指出我的错误所在并帮助我修复此代码?
您的键盘上有 3 行字母
row1="QWERTYUIOP"
row2="ASDFGHJKL"
row3="ZXCVBNM"
虽然第 3 行不会产生任何单词,因为它没有元音字母,但您仍然需要检查第二行是否有 GLAD、FLAG、HALL 等单词
对于每个单词,如果所有字母都在同一行,则可以将其写在一行中:
if all(letter in row1 for letter in word) \
or all(letter in row1 for letter in word):
有了这个,您应该能够通过遍历单词列表来填充最终结果(无需为索引而烦恼)。
for word in wl:
if all(letter in row1 for letter in word.upper()) \
or all(letter in row2 for letter in word.upper()):
final.append(True)
else:
final.append(False)
问题
WRITE 代码检查 'N' 英文单词列表是否可以仅使用键盘的一行来书写。如果是这种情况,请制作一个包含 'True' 或 'False' 选项的列表。
输入:
第一行必须读取 'N' 的值。 第二行开始读 'N' 字
示例:如果 N = 3 的值,则英语单词列表为 [POTTER, EQUITY, LIRIL] 则输出为 [True, True, False]
我的代码
N=int(input("enter number of elements: "))
words=input("enter the words separated by a space: ")
wl=words.split()
print("list of words is" , wl)
l2=[]
final=[]
a=['q','w','e','r','t','y','u','i','o','p']
if N<0:
print("Invalid Input")
else:
for i in range(0,N):
ele=wl[i]
l2.append(ele)
new=ele.split()
if new <=a:
re1='True'
final.append(re1)
else:
re2='False'
final.append(re2)
print(final)
最终列表显示真实,即使使用了键盘其他行的字母。谁能指出我的错误所在并帮助我修复此代码?
您的键盘上有 3 行字母
row1="QWERTYUIOP"
row2="ASDFGHJKL"
row3="ZXCVBNM"
虽然第 3 行不会产生任何单词,因为它没有元音字母,但您仍然需要检查第二行是否有 GLAD、FLAG、HALL 等单词
对于每个单词,如果所有字母都在同一行,则可以将其写在一行中:
if all(letter in row1 for letter in word) \
or all(letter in row1 for letter in word):
有了这个,您应该能够通过遍历单词列表来填充最终结果(无需为索引而烦恼)。
for word in wl:
if all(letter in row1 for letter in word.upper()) \
or all(letter in row2 for letter in word.upper()):
final.append(True)
else:
final.append(False)