[英]creating a matrix or a list of lists with python
我完成了一个关于列表和使用井字游戏的教程。
我得到一个字符串,如:XOXOXOXXO
我想将其转换为矩阵或列表列表,例如:
tic_tac_toe= [[ 'X', 'O', 'X'], [ 'O', 'X', 'O'], [ 'O', 'X', 'X']]
我可以将其作为“列表”获取,但无法将其作为列表列表获取。
我一直在搜索各种帖子,一个挑战是我看到很多都是 5 或 7 岁的,我不得不想知道一些答案仍然是多么相关,而且我之前无法完成这些工作建议。
player_actions = 'XO_OOX_X_'
cells = list()
print('Before loop:', player_actions)
for char in player_actions:
cells.insert(0, ''.join(char.split()))
# Output
print('After loop:', cells)
Output example:
Before loop: XOXOXOXXO
After loop: ['O', 'X', 'X', 'O', 'X', 'O', 'O', 'X', 'X']
Goal: [['O', 'X', 'X'],['O', 'X', 'O'],['O', 'X', 'X']]
使用slicing
创建一批均匀分布的元素:
s = 'XOXOXOXXO'
splitted = [s[x:x+3] for x in range(0,len(s),3)]
print([[i] for i in splitted])
单线:
print([[i] for i in [s[x:x+3] for x in range(0,len(s),3)]]) # [['XOX'], ['OXO'], ['XXO']]
print([[i for i in s[x:x+3]] for x in range(0,len(s),3)]) # [['X', 'O', 'X'], ['O', 'X', 'O'], ['X', 'X', 'O']]
使用 numpy 数组并在此之后对其进行整形
import numpy as np
arr = ['O','X','O','X','X','O','X','X','O'] #let's take this list as an example
arr = np.array(arr).reshape(3,3) #this creates a 3x3 matrix of the given list
arr = arr.tolist() #if you want to convert numpy array back to list
print(arr)
#output
# [['O', 'X', 'O'], ['X', 'X', 'O'], ['X', 'X', 'O']]
假设您实际想要的 output 为
player_actions = 'XOXOXOXXO'
是
[['X', 'O', 'X'], ['O', 'X', 'O'], ['X', 'X', 'O']]
您可以使用嵌套列表推导生成它:
cells = [[c for c in player_actions[i:i+3]] for i in range(0, len(player_actions), 3)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.