gpt4 book ai didi

python - 如何根据给定索引制作二维列表大写字母的元素?

转载 作者:行者123 更新时间:2023-11-28 18:32:14 24 4
gpt4 key购买 nike

我想根据函数返回的索引以大写字母制作二维列表的元素。例如:

crosswords=[['s','d','o','g'],['c','u','c','m'],['a','x','a','t'],['t','e','t','k']]
word='cat',

然后我的函数应该返回:

[['s','d','o','g'],['C','u','c','m'],['A','x','a','t'],['T','e','t','k']] 

这是我尝试过的:

def find_word_vertical(crosswords, word):
x=zip(*crosswords)
#print x
for row in x:
join_list = "".join(row)
if join_list.find(word) != -1:
return [row.index(word[0]),x.index(row)]
break
def find_word_horizontal(crosswords, word):

for row in crosswords:
join_list = "".join(row)
if join_list.find(word) != -1:
return [crosswords.index(row), row.index(word[0])]
break

def capitalize_word_in_crossword(crosswords,word):

if find_word_horizontal or find_word_vertical is not None:
for i in word:
for j in crosswords:
if i in j:
i.upper()
return crosswords

结果如下:

[['s', 'd', 'o', 'g'], ['c', 'u', 'c', 'm'], ['a', 'c', 'a', 't'], ['t', 'e', 't', 'k']]

谁能帮帮我?

最佳答案

您可以使用列表理解找到水平和垂直出现的情况。

水平出现是:

>>> filter(
lambda (_, j): j > -1,
[(i, ''.join(w).find(word)) for i, w in enumerate(crosswords)])
[]

垂直出现是:

>>> filter(
lambda (i, _): i > -1,
[(''.join(w[j] for w in crosswords).find(word), j) for j in range(len(crosswords))])
[(1, 0), (1, 2)]

对于出现的事件,很容易选择如何处理它们(选择一个或全部,更喜欢水平而不是垂直等),包括将它们大写。

关于python - 如何根据给定索引制作二维列表大写字母的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35823659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com