我有S1 = (15, 20, 65)
的列表/元组/数组
我想循环遍历这个list / tuple / array并获取第一个元素15
我所做的是:
for sensor in S1:
print (sensor[0])
然而我收到错误TypeError: 'int' object is not subscriptable
然后,我尝试了以下代码:
for sensor in S1:
print (str(sensor)[0])
但它会打印所有数字的第一位数字。
如何获得结果15
(第一个元素)?
答案 0 :(得分:1)
S1 [0]为您提供第一个元素。
你的第一个代码不起作用,因为当你循环通过S1时,传感器已经是整数,然后传感器[0]没有意义。
答案 1 :(得分:1)
首先,让我们澄清一下:你的变量S1
是一个元组。列表放在方括号中。
你的S1
循环说“对于这个元组中的每个元素,打印该元素的第一个元素”。这意味着它将尝试下标每个整数值,这是不可能的。
当你第一次将每个元素转换为字符串时它起作用的原因是字符串是可订阅的,它们为你提供你提供的索引处的字符。
从阅读你的问题我不确定你是否想要一个等于15的元组中的第一个项目,或者你是否只想要第一个项目,在这种情况下恰好是15。
前者:
def get_15(t):
for el in t:
if el == 15:
return el
return -1
get_15((1, 2, 3, 15)) # => 15
get_15((1, 2, 3)) # => -1
后者:
def get_first(t):
return t[0]
get_first((1, 2, 3)) # 1
get_first((3, 2, 1)) # 3
答案 2 :(得分:0)
这很有效。它打印15
S1 = [15, 20, 65]
print(S1[0])