我有以下列表:
[[50.954818803035948, 55.49664787231189, 8007927.0, 0.0],
[50.630482185654436, 55.133473852776916, 8547795.0, 0.0],
[51.32738085400576, 55.118344981379266, 6600841.0, 0.0],
[49.425931642638567, 55.312890225131163, 7400096.0, 0.0],
[48.593467836476407, 55.073137270550006, 6001334.0, 0.0]]
我想打印每个列表中的第三个元素。期望的结果是:
8007927.0
8547795.0
6600841.0
7400096.0
6001334.0
我试过了:
print data[:][2]
但它没有输出所需的结果。
答案 0 :(得分:4)
很多方法都可以做到这一点。这是一种简单的列表方式,没有明确的for
循环。
tt = [[50.954818803035948, 55.49664787231189, 8007927.0, 0.0], [50.630482185654436, 55.133473852776916, 8547795.0, 0.0], [51.32738085400576, 55.118344981379266, 6600841.0, 0.0], [49.425931642638567, 55.312890225131163, 7400096.0, 0.0], [48.593467836476407, 55.073137270550006, 6001334.0, 0.0]]
print [x[2] for x in tt]
> [8007927.0, 8547795.0, 6600841.0, 7400096.0, 6001334.0]
对于潜在的短名单而言,制作是安全的
print [x[2] for x in tt if len(tt) > 3]
更复杂的输出(python 2.7),将值打印为换行符(\ n)
print '\n'.join([str(x[2]) for x in tt])
> 8007927.0
> 8547795.0
> 6600841.0
> 7400096.0
> 6001334.0
答案 1 :(得分:3)
试试这个:
for item in data:
if len(item) >= 3: # to prevent list out of bound exception.
print(int(item[2]))
答案 2 :(得分:3)
public void VisitStatusInsertorUpdate(VisitStatusModel modlobj) {
String query = " SELECT * FROM " + VisitStatusModel.table + " WHERE " + VisitStatusModel.statusid + " =" + modlobj.getStatusID() + "";
Cursor c = db.rawQuery(query, null);
if (c.moveToFirst()) {
VisitStatusUpdate(modlobj);
} else {
InsertVisit_Status(modlobj);
}
c.close();
}
private void VisitStatusUpdate(VisitStatusModel modlobj) {
ContentValues contentValues = new ContentValues();
String[] args = {String.valueOf(modlobj.getStatusID())};
contentValues.put(VisitStatusModel.status,modlobj.getStatus());
contentValues.put(VisitStatusModel.statusid,modlobj.getStatusID());
db.update(VisitStatusModel.table, contentValues, VisitStatusModel.statusid + "= ?", args);
}
private void InsertVisit_Status(VisitStatusModel visitStatusModel) {
ContentValues contentValues = new ContentValues();
contentValues.put(VisitStatusModel.status, visitStatusModel.getStatus());
contentValues.put(VisitStatusModel.statusid, visitStatusModel.getStatusID());
mcontext.getContentResolver().notifyChange(VisitDAO_URI, null);
db.insert(VisitStatusModel.table, null, contentValues);
}
和map
已经提供,我想提供两种方式,比如说list comprehensive
是您的清单:
使用d
:
zip
使用zip(*d)[2]
:
numpy
答案 3 :(得分:2)
也许你尝试了一个地图功能 在python 3中:
list(map(lambda l: l[2], z))
在python 2中:
map(lambda l: l[2], z)
答案 4 :(得分:2)
为了从列表列表中打印每个列表的n
元素,您需要首先访问每个列表,然后访问该列表中的n
元素。
在实践中,它看起来像这样
def print_nth_element(listset, n):
for listitem in listset:
print(int(listitem[n])) # Since you want them to be ints
然后可以以print_nth_element(data, 2)
的形式为您的案例调用。
你的data[:][2]
没有产生正确结果的原因是因为data[:]
按原样返回整个列表列表,然后执行获取同一列表的第3个元素就是获得第一个元素原始清单。因此data[:][2]
实际上等同于data[2]
。