在python中如何在列表中找一个数_python从list列表中选出一个数和其对应的坐标方法...

例1:给一个列表如下,里面每个元素对应的是x和y的值

a = [[5,2],[6,3],[8,8],[1,3]]

现在要挑出y的值为3对应的x的值,即6和1

import numpy as np

a = [[5,2],[6,3],[8,8],[1,3]]

#c=np.mat(a),因为只有矩阵(也可以用array)才能用a[0,0]这样的调用

#表示第一个数的用法而list没有,故在最后append需要用到

#注意:array也没有index这样的用法(只有list有,此题a已经是list),

#使用index要改成list

c = np.mat(a)

b = []

for i in range(len(a)):

try: #使用try...except...是因为比如3不在第一个[5,2]中会报错并终止运行

b_index = a[i].index(3) #使用index寻找3所在的索引值

except:

pass #pass表示如果报错那么跳过并继续下一个

else: #如果没有报错则进行else内容

b.append(c[i,0])

print(b)

#结果为

[6,1]

或者使用简单的如下:

a = [[5,2],[6,3],[8,8],[1,3]]

x = [i for i in a if 3 in i]

print(x)

20190720104638.jpg

例2:

已知一系列坐标(x,y,z,h)分别对应横坐标纵坐标z坐标和高,现在要在x-y平面画出h=0.00221图(实际上就是等高线图)

h保留5位小数。

20190720104649.jpg

上面只展示了一小部分数据

1,导入数据

import matplotlib.pyplot as plt

import numpy as np

data = np.loadtxt(r'/media/sf_Share/fisher_matrix/myLSPE/data/41+95+150/r_0.01/sigma_F_0.1/sigma_F=0.1/threefre.txt')

2,将第四列即h保留5位小数

for i in range(len(data)):

data[i,3] = float('%.5f'%data[i,3])

3,将h=0.00211对应的x,y坐标找到并保存到x_mat和y_mat中

x_mat = []

y_mat = []

for i in range(len(data)):

try:

data_index = list(data[i]).index(0.00211)

except:

pass

else:

x_mat.append(data[i,0])

y_mat.append(data[i,1])

4,画散点图

plt.scatter(x_mat,y_mat)

plt.show()

结果如下:

20190720104704.jpg

完整代码:

import matplotlib.pyplot as plt

import numpy as np

data = np.loadtxt(r'/media/sf_Share/fisher_matrix/myLSPE/data/41+95+150/r_0.01/sigma_F_0.1/sigma_F=0.1/threefre.txt')

for i in range(len(data)):

data[i,3] = float('%.5f'%data[i,3])

#data_list = list(data)

x_mat = []

y_mat = []

for i in range(len(data)):

try:

data_index = list(data[i]).index(0.00211)

except:

pass

else:

x_mat.append(data[i,0])

y_mat.append(data[i,1])

plt.scatter(x_mat,y_mat)

plt.show()

以上这篇python从list列表中选出一个数和其对应的坐标方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值