我有
形式的要点列表points=[(x1,y1),...(xn,yn)...]
我正在寻找一种将列表转换成
的Python方法 x=[x1,...xn] y=[y1,...yn]
一种方法是
x = map (lambda x: x[1],points)
但是,也许还有一种更Python的方法可以直接从上述“点”中进行绘制?
答案 0 :(得分:4)
您可以执行以下操作:
x = []
y = []
for point in points:
x.append(point[0])
y.append(point[1])
或:
x,y = [i[0] for i in points], [i[1] for i in points]
但是最好的方法是使用zip
:
x,y = zip(*points)
zip
比map
更好,并且更快,您应该使用lambda
在map中定义一个函数。所以我认为最好的方法是使用zip
。
答案 1 :(得分:1)
除了mehrdad-pedramfar答案:
如果使用numpy没问题,您可以将元组列表转换为numpy数组,然后仅使用索引。
create function get_ddl( i_owner in varchar2, i_name in varchar2, i_type in varchar2)
return clob
is
begin
dbms_output.put_line('Listing active session roles...');
for r_role in (select role from sys.session_roles) loop
dbms_output.put_line('Role : '||r_role.role);
end loop;
dbms_output.put_line('Roles listed');
dbms_output.put_line('Userid is : '||sys_context('userenv', 'current_userid'));
return dbms_metadata.get_ddl( schema => i_owner, name => i_name, object_type => i_type);
end;
给出所有x个值的numpy数组:
import numpy as np
short_example = np.array([(1,2),(2,4),(4,6)])
short_example[:,0]
给出一个所有y值的numpy数组:
array([1, 2, 4])
short_example[:,1]