python二维list
1. 一些python中的二维数组的操作方法
一些Python中的二维数组的操作方法
这篇文章主要介绍了一些Python中的二维数组的操作方法,是Python学习当中的基础知识,需要的朋友可以参考下
需要在程序中使用二维数组,网上找到一种这样的用法:
#创建一个宽度为3,高度为4的数组
#[[0,0,0],
# [0,0,0],
# [0,0,0],
# [0,0,0]]
myList = [[0] * 3] * 4
但是当操作myList[0][1] = 1时,发现整个第二列都被赋值,变成
[[0,1,0],
[0,1,0],
[0,1,0],
[0,1,0]]
为什么...一时搞不懂,后面翻阅The Python Standard Library 找到答案
list * n—>n shallow copies of list concatenated, n个list的浅拷贝的连接
例:
>>> lists = [[]] * 3
>>> lists
[[], [], []]
>>> lists[0].append(3)
>>> lists
[[3], [3], [3]]
[[]]是一个含有一个空列表元素的列表,所以[[]]*3表示3个指向这个空列表元素的引用,修改任何
一个元素都会改变整个列表:
所以需要用另外一种方式进行创建多维数组,以免浅拷贝:
>>> lists = [[] for i in range(3)]
>>> lists[0].append(3)
>>> lists[1].append(5)
>>> lists[2].append(7)
>>> lists
[[3], [5], [7]]
之前的二维数组创建方式为:
myList = [([0] * 3) for i in range(4)]
2. python 如何定义动态二维数组
追加字符串行表主要的二维列表。由于多维名单基本上列出清单,一个两维的名单将代表一个单一的清单,其中包含其他列表。 .,因为Python列表是动态的,首先你可以使用“追加”功能容易添加和删除其他列表:
3. 如何在python中创建二维列表
Python中创建二维列表/数组,即创建一个list,并且这个list的元素还是list。可以用列表解析的方法实现。
创建例子如下:
2d_list=[[0forcolinrange(cols)]forrowinrange(rows)]
其中cols, rows变量替换为你需要的数值即可,例如:
2d_list=[[0forcolinrange(9)]forrowinrange(9)]
#9*9的二维列表
4. 在python中有一个二维list【【wei,1970】,【z,1970】【z,1971】】,想把里边1970的和1971的分成两个
value=[['wei',1970],['z',1970],['oo',1971]]
d={}
foriinvalue:
ifi[1]ind:
d[i[1]]=d[i[1]]+[i[0]]
else:
d.setdefault(i[1],[i[0]])
print([vfork,vind.items()])
5. python的二维list问题
list 的 乘法是将里面的对象复制了一遍,并没有创建新的对象(object)。比方说
b = [1, 2, 3]
b 是一个 list 对象,如果
a = [b]*3
那么a就是一个包含三个 b 的列表,这个列表中的每一个对象都是b,所以你修改任意一个对象,实际都是在修改 b本身。用 id() 可以查看对象id,你可以发现a中的每一个元素都是同一个id
>>>b=[0,0,0]
>>>id(b)
47599855534232
>>>a=[b]*3
>>>a
[[0,0,0],[0,0,0],[0,0,0]]
>>>id(a)
47599860614424
>>>id(a[0])
47599855534232
>>>id(a[1])
47599855534232
>>>id(a[2])
47599855534232
>>>id(a[2])==id(b)
True
如果你想a中每一个元素都是不同的对象,可以用下面的代码:
a=[[0]*3foriinrange(3)]
6. python中的list元组如何按照第二维元素排序
在Python中可以使用sorted函数对list进行排序,但是如果排序的对象是一个包含tuple的list时,sorted函数会使用tuple的第一个元素。
如果想要使用tuple的第二个元素进行排序,可以向sorted函数传入一个key参数,key参数必须是一个函数,输入是list的一个元素,输出最好是一个数字或简单的字符。
构造这样一个函数可以使用匿名函数lambda,示例代码如下:
myList=[('ngeon',7),('winterfell',4),('bran',9),('meelo',6)]
printsorted(myList,key=lambdax:x[1])
#[('winterfell',4),('meelo',6),('ngeon',7),('bran',9)]
7. python二维数组怎么求交集
本文实例讲述了python获得两个数组交集、并集、差集的房部分。分享给大家供大家参考。具体如下:
1. 获取两个list 的交集
#方法一:
a=[2,3,4,5]
b=[2,5,8]
tmp = [val for val in a if val in b]
print tmp
#[2, 5]
#方法二
print list(set(a).intersection(set(b)))
2. 获取两个list 的并集
print list(set(a).union(set(b)))
3. 获取两个 list 的差集
print list(set(b).difference(set(a))) # b中有而a中没有的
通过以上方法,就能处理python list 的交集,并集,差集了。
8. Python中怎么获取二维数组中指定列的数据。
解答:
op=open('xx.txt','r')
list=[]
for line in op:
list.append(line)
这样第一行就是a[0]。
要取出第一行第二个字。
a[0].split(' ')[1]按空格分隔,函数名应该这个。
9. python list中多个二维数组怎么合并成一个array二维数组
使用循环遍历,加append插到空数组中