在SFrame行上使用row.values()时,值是如何排序的?

时间:2016-01-10 21:51:41

标签: python sorting dictionary dataframe graphlab

当我在<?php $premiums = get_users( array( 'role' => 's2member_level1, administrator' ) ); $premium_ids = array(); foreach( $premiums as $premium ) $premium_ids[] = $premium->ID; $posts = new WP_Query( array( 'author' => implode( ',', $premium_ids ), 'post_type' => 'classifieds', 'paged' => get_query_var('paged') ) ); if ( $posts->have_posts() ) : while ( $posts->have_posts() ) : $posts->the_post(); // The post title, content, etc, encase in a PREMIUM css class endwhile; endif; wp_reset_postdata(); ?> 行中使用row.values()时,值是如何排序的?

例如:

graphlab.SFrame

[OUT]:

import graphlab as gl
x = gl.SFrame({'X200':[1,2,3], 'X100':[4,5,6], 'X1': [7,8,9]})
row = x[0] # first row
print row.values()

所以它们似乎按键/列名称排序,但总是如此?非常感谢任何指向python词典或SFrame文档的指针。

2 个答案:

答案 0 :(得分:1)

没有row.values()不会返回排序列表,因为row是一个python字典而且没有排序。

要证明这一点:

>>> x = gl.SFrame({'X1': ['foo', 'bar', 'blah'], 'X3':[1,2,3], 'X2':[4,5,6]})
>>> x[0].values()[1:]
[1, 'foo']

似乎要获得排序值,您必须先进行一些键排序:

>>> _, v = zip(*sorted(x[0].items())[1:])
>>> v
(4, 1)

答案 1 :(得分:0)

这更像是一个Python字典问题(参见Key Order in Python Dictionaries)。在python中,.values()方法以任意顺序返回值。 SFrame的一行是字典。