my_str="ellezagchickenbndodetballigatoraaaolmeznacattleeblrctacfenarcesssadlritfhftrarrssos aoiarefaareppohssarghcerumrheirmmwildfcumeboimltaairfovindalbiglalobehoeasiaxuesabldinbbccrhhrtylrlahsifdlogkrctlaiareogoldfinchefnnddmneepoletnarntadodinosauroxofoeclictnahpelepalgaierhohcaorkcocyatrmoacrflamingoerefafloechateehchdracaribou"
def create_2d_list(N):
output_list=[]
counter=0
for row in range(0,N):
temp=[]
for col in range(0,N):
temp.append(my_str[counter])#you can add a charcter instead of counter
counter=counter+1
output_list.append(temp[:])
return output_list
N=18
x=create_2d_list(N)
for row in range(0,N):
total=0
s="|"
for col in range(0,N):
my_str="{0:2} ".format(x[row][col])
s=s+my_str+"|"
print "-"*(N*4+1)
print s,
print " "
the_valid_words=open("E:/asd/words.txt","r").readlines()
def looking_word_left_to_right(the_list):
for any_words in the_valid_words:
for every in x[0]:
the_first_index=x[0].index(every)
for every in range(the_first_index,(the_first_index)+7):
c=str(every)
the_join=" ".join(c)
if the_join==the_valid_words:
word.upper().replace(every,x[0].upper(every))
return x[0]
print looking_word_left_to_right(x)
每次运行程序时,looking_word_left_to_right都不会打印任何内容
P.S它类似于初学者的小填字游戏,将制作单词的字母大写并删除所有其他字母而不改变位置,如果有人可以给出如何继续的想法,这将是伟大的。我有一些有效的词要找。我是新手,所以对我很轻松:) 感谢帮助。
答案 0 :(得分:0)
似乎存在许多问题。
x
传递时,为什么要对the_list"
进行操作?只需使用the_list
。x
的第一行,而且从未超越过那个。" ".join(c)
将为您提供"a b c d e f g"
。如果您的the_valid_words
中没有空格,则if the_join==the_valid_words
将始终评估为false。the_valid_words,
进行比较,这是您的整个列表。您可能应该使用any_word
来比较 EACH 有效单词...您没有在其他地方使用它。x
的问题,而你正在改变它(它有时会使迭代器无效......但有时却没有)。即如果你在迭代之前迭代x
然后改变x
,那么Python可能不知道迭代器在新版x
中的位置。由于the_list
与x
相同,因此最好for every in the_list:
然后将x
更改为您内心的内容。看起来你可能不太清楚Python中的循环是如何工作的。看看那些,这可能会有所帮助。