Python 如何使用字典

Python 如何使用字典,python,list,Python,List,当用户输入一些数字时,如何在运行时生成2d列表。此列表: l = [['l', 'd', 'l', 'o', 'h', 'p'], ['i', 't', 'i', 'f', 'w', 'f'], ['g', 'n', 'r', 'k', 'q', 'u'], ['h', 'g', 'u', 'a', 'l', 'l'], ['t', 'c', 'v', 'g', 't', 'l'], ['d', 'r', 'a', 'w', 'c'

当用户输入一些数字时,如何在运行时生成2d列表。

此列表:

l = [['l', 'd', 'l', 'o', 'h', 'p'],  
    ['i', 't', 'i', 'f', 'w', 'f'],   
    ['g', 'n', 'r', 'k', 'q', 'u'],  
    ['h', 'g', 'u', 'a', 'l', 'l'],  
    ['t', 'c', 'v', 'g', 't', 'l'],   
    ['d', 'r', 'a', 'w', 'c', 's']]

word = input("Please enter a word: ")

for i in range(len(l)):
    for j in range(len(l[i])):
        if l[i][j] in word:
            l[i][j]=l[i][j].capitalize()

print(l)
出局:

这个:

l = [['l', 'd', 'l', 'o', 'h', 'p'],  
    ['i', 't', 'i', 'f', 'w', 'f'],   
    ['g', 'n', 'r', 'k', 'q', 'u'],  
    ['h', 'g', 'u', 'a', 'l', 'l'],  
    ['t', 'c', 'v', 'g', 't', 'l'],   
    ['d', 'r', 'a', 'w', 'c', 's']]

word = input("Please enter a word: ")

for i in range(len(l)):
    for j in range(len(l[i])):
        if l[i][j] in word:
            l[i][j]=l[i][j].capitalize()

print(l)
出局:


对于水平,您可以使用以下选项:

>>> for i in range(len(l)):# l is the list
    temp = ''.join(l[i])
    x = temp.find(word) #word is the user input eg. draw
    y = len(word)
    if x != -1:
        for j in range(y):
            l[i][j]=l[i][j].capitalize()

我将尝试使垂直和对角线以及

水平,您可以使用:

>>> for i in range(len(l)):# l is the list
    temp = ''.join(l[i])
    x = temp.find(word) #word is the user input eg. draw
    y = len(word)
    if x != -1:
        for j in range(y):
            l[i][j]=l[i][j].capitalize()

我会尽量做到垂直和对角

有容易的事,也有困难的事:

  • 水平-简单地连接内部列表,用大写表示替换单词和反转的单词,然后将字符串拆分为字母

  • 垂直稍微困难一些,但是您可以通过
    zip
    对矩阵进行转置,然后再次替换转置来处理它

  • 垂直问题在链接问题中处理

下面是如何进行水平和垂直操作:

data  = [['l', 'd', 'l', 'o', 'h', 'p'],
         ['i', 't', 'i', 'f', 'w', 'f'],
         ['g', 'n', 'r', 'k', 'q', 'u'],
         ['h', 'g', 'u', 'a', 'l', 'l'],
         ['t', 'c', 'v', 'g', 't', 'l'],
         ['d', 'r', 'a', 'w', 'c', 's']]

words = ['draw', 'full', 'hold', 'laugh', 'light', 'start', 'all', 'kid']

from pprint import pprint as p

for w in words: 
    print()
    # horizontal
    data1 = [list(''.join(line).replace(w,w.upper())) for line in data]
    # horizontal, word reversed
    data1 = [list(''.join(line).replace(w[::-1],w[::-1].upper())) for line in data1]

    # vertical
    data1 = list(zip(*[list(''.join(line).replace(w,w.upper()))  
                       for line in zip(*data1)]))
    # vertical, word reversed
    data1 = list(zip(*[list(''.join(line).replace(w[::-1],w[::-1].upper())) 
                       for line in zip(*data1)]))

    if data1 != data:
        print(f"Found: {w}:")
        data = data1
        p(data)
    else:
        print(f"No {w} - check diagonally")
输出:

Found: draw:
[('l', 'd', 'l', 'o', 'h', 'p'),
 ('i', 't', 'i', 'f', 'w', 'f'),
 ('g', 'n', 'r', 'k', 'q', 'u'),
 ('h', 'g', 'u', 'a', 'l', 'l'),
 ('t', 'c', 'v', 'g', 't', 'l'),
 ('D', 'R', 'A', 'W', 'c', 's')]

Found: full:
[('l', 'd', 'l', 'o', 'h', 'p'),
 ('i', 't', 'i', 'f', 'w', 'F'),
 ('g', 'n', 'r', 'k', 'q', 'U'),
 ('h', 'g', 'u', 'a', 'l', 'L'),
 ('t', 'c', 'v', 'g', 't', 'L'),
 ('D', 'R', 'A', 'W', 'c', 's')]

Found: hold:
[('l', 'D', 'L', 'O', 'H', 'p'),
 ('i', 't', 'i', 'f', 'w', 'F'),
 ('g', 'n', 'r', 'k', 'q', 'U'),
 ('h', 'g', 'u', 'a', 'l', 'L'),
 ('t', 'c', 'v', 'g', 't', 'L'),
 ('D', 'R', 'A', 'W', 'c', 's')]

Found: laugh:
[('l', 'D', 'L', 'O', 'H', 'p'),
 ('i', 't', 'i', 'f', 'w', 'F'),
 ('g', 'n', 'r', 'k', 'q', 'U'),
 ('H', 'G', 'U', 'A', 'L', 'L'),
 ('t', 'c', 'v', 'g', 't', 'L'),
 ('D', 'R', 'A', 'W', 'c', 's')]

No light - check diagonally
No start - check diagonally
No all - check diagonally
No kid - check diagonally 

有容易的事,也有困难的事:

  • 水平-简单地连接内部列表,用大写表示替换单词和反转的单词,然后将字符串拆分为字母

  • 垂直稍微困难一些,但是您可以通过
    zip
    对矩阵进行转置,然后再次替换转置来处理它

  • 垂直问题在链接问题中处理

下面是如何进行水平和垂直操作:

data  = [['l', 'd', 'l', 'o', 'h', 'p'],
         ['i', 't', 'i', 'f', 'w', 'f'],
         ['g', 'n', 'r', 'k', 'q', 'u'],
         ['h', 'g', 'u', 'a', 'l', 'l'],
         ['t', 'c', 'v', 'g', 't', 'l'],
         ['d', 'r', 'a', 'w', 'c', 's']]

words = ['draw', 'full', 'hold', 'laugh', 'light', 'start', 'all', 'kid']

from pprint import pprint as p

for w in words: 
    print()
    # horizontal
    data1 = [list(''.join(line).replace(w,w.upper())) for line in data]
    # horizontal, word reversed
    data1 = [list(''.join(line).replace(w[::-1],w[::-1].upper())) for line in data1]

    # vertical
    data1 = list(zip(*[list(''.join(line).replace(w,w.upper()))  
                       for line in zip(*data1)]))
    # vertical, word reversed
    data1 = list(zip(*[list(''.join(line).replace(w[::-1],w[::-1].upper())) 
                       for line in zip(*data1)]))

    if data1 != data:
        print(f"Found: {w}:")
        data = data1
        p(data)
    else:
        print(f"No {w} - check diagonally")
输出:

Found: draw:
[('l', 'd', 'l', 'o', 'h', 'p'),
 ('i', 't', 'i', 'f', 'w', 'f'),
 ('g', 'n', 'r', 'k', 'q', 'u'),
 ('h', 'g', 'u', 'a', 'l', 'l'),
 ('t', 'c', 'v', 'g', 't', 'l'),
 ('D', 'R', 'A', 'W', 'c', 's')]

Found: full:
[('l', 'd', 'l', 'o', 'h', 'p'),
 ('i', 't', 'i', 'f', 'w', 'F'),
 ('g', 'n', 'r', 'k', 'q', 'U'),
 ('h', 'g', 'u', 'a', 'l', 'L'),
 ('t', 'c', 'v', 'g', 't', 'L'),
 ('D', 'R', 'A', 'W', 'c', 's')]

Found: hold:
[('l', 'D', 'L', 'O', 'H', 'p'),
 ('i', 't', 'i', 'f', 'w', 'F'),
 ('g', 'n', 'r', 'k', 'q', 'U'),
 ('h', 'g', 'u', 'a', 'l', 'L'),
 ('t', 'c', 'v', 'g', 't', 'L'),
 ('D', 'R', 'A', 'W', 'c', 's')]

Found: laugh:
[('l', 'D', 'L', 'O', 'H', 'p'),
 ('i', 't', 'i', 'f', 'w', 'F'),
 ('g', 'n', 'r', 'k', 'q', 'U'),
 ('H', 'G', 'U', 'A', 'L', 'L'),
 ('t', 'c', 'v', 'g', 't', 'L'),
 ('D', 'R', 'A', 'W', 'c', 's')]

No light - check diagonally
No start - check diagonally
No all - check diagonally
No kid - check diagonally 

这个问题已经回答了。这个问题回答了你的问题吗@你链接的帖子是不同的。这有点相似,但并没有回答我真正需要的。这个问题已经回答了。这个问题回答了你的问题吗@你链接的帖子是不同的。它有点类似,但不能满足我的实际需要。它不能正常工作。它对某些单词的大写错误。尝试输入“保持”和“全部”。它无法正常工作。它对某些单词的大写错误。试着输入'hold'和'all'。这对我来说很难理解。例如,如果你输入“你好”,你想得到什么?这对我来说很难理解。例如,如果您输入“hello”,您希望得到什么?