为了账号安全,请及时绑定邮箱和手机立即绑定

在python中解释列表函数

在python中解释列表函数

倚天杖 2021-03-28 14:15:34
我有这行代码,它将英语行中的英语单词(在这种情况下为弓箭手和弓箭手)放入列表中,并使用单词数的整数(在这种情况下为02)找出其中有多少个单词线line = 09824747 18 n 02 archer 0 bowman 0 003 @ 09640897 n 0000 ~ 10290474 n 0000 ~ 10718145 n 0000L = line.split()word = L[4:4 + 2 * int(L[3]):2]print(word)打印出来 ['archer', 'bowman']我想使用以另一种方式将单词分配给列表的代码行,我想将在'@'符号后出现的8位数字分配给其他列表。到目前为止,我已经获得了获取文件中8位数字数量的代码以及我的努力。(在这种情况下,8位数字的数量为003)pointer_num = re.findall(r'\b\d{3}\b', line)K = int(pointer_num[0])before_at, after_at = line.split('@')S = after_at.split()[0:0 +3 * K:3]S应该是8位数字的列表。尽管此代码将S输出为:['09640897', '~', '0000']这是正确的条目数,只是错误的条目数。如果有人可以解释,word = L[4:4 + 2 * int(L[3]):2]我应该可以自己更正
查看完整描述

3 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

L[4:4 + 2 * int(L[3]):2] 可以这样理解:

L[3]返回列表中的第四个元素L(例如'02')。

int(L[3])返回int字符串的L[3](例如2)。

4 + 2 * int(L[3])返回int,例如4 + 2 * 2 = 8。

L[4:8:2]返回一个由元素的列表L[4]通过L[7],由2跳过换句话说,[L[4], L[6]]。通常L[start:stop:skip]返回一个列表,该列表以开头L[start],恰好在之前结束L[stop]。可以将其[start, stop)视为半开间隔。最后一个数字skip,导致列表跳过此数目的元素。

在此处的注释3,4,5中说明了有关Python切片如何对序列类型进行工作的完整规则。


查看完整回答
反对 回复 2021-04-01
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

L[3]02

int(L[3]) 是 2

4 + 2 * int(L[3]) 是 8

L[4:4 + 2 * int(L[3]):2]L[4:8:2]L从索引48排除索引中的项目,其步骤为2

L[4]'archer'L[6]'bowman'



查看完整回答
反对 回复 2021-04-01
  • 3 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信