Python 3 提取字符串使用 split 方法返回的参数列表中的元素

当我第一次接触python 中的split方法的时候,我使用print函数输出了一个字符串被split之后的结果:

str_ = input()
str_.split(',', 3)  # 默认已知只有两个逗号把字符串分成三段
print(['abcd', 'ab', 'cd'])

>>> zai,yu,you  # 用户输入字符串

>>> ['zai', 'yu', 'you']

哦,我见过这种输出结构,它很像列表中包含了三个“元素”:‘zai'、’yu‘、’you‘;

但是,如果你尝试按照列表的理解去输出这些元素:

print(str_[0], str_[1], str_[2])

你可能会认为你会得到:

>>> zai yu you

但是实际上,不出意外的话,你将会得到:

>>> z a i

原因是什么?

这是我们的理解错误导致了上述输出没有按照我们设想的结果输出,我们错把print函数输出的列表当成了str_对象本身;而实际上,如果你试过

print(str_)

>>> zai,yu,you

str_字符串没有变成列表,也没有产生变化

显然,学过python的都知道,字符串类型的对象是不可修改的,所以字符串str_根本没有因为我们使用了split方法而发生任何变化。

那么,print出来的”列表“是谁呢?

如果我们稍微了解过split方法的话,不难知道split方法会产生一个返回值,而这个返回值的类型是一个参数列表,这就是为什么

>>> print(str_.split(',', 3))

>>> ['zai', 'yu', 'you']

ok,那么这个列表并不是str,而是split方法的返回值,换言之,“str_.split(',', 3)”这个玩意就是个参数列表,所以,让我们试试把”str_.split(',', 3)“当成列表对象来输出它的元素:

>>> print(str_.split(',', 3)[0], str_.split(',', 3)[1], str_.split(',', 3)[2])

>>> zai yu you

Yes!得到了我们想要的结果

当然,我们也可以使用其他方法来提取出我们想要的列表元素:

>>> u1, u2, u3 = str_.split(',', 3)

>>> print(u1, u2, u3)

>>> zai yu you

也可以得到我们想要的结果

当然,直接把“str_.split(',', 3)”拿来当作一个新对象使用或许并不直观,我们一般会定义一个新的列表对象来储存它的元素:

str_list1_ = []
str_list1_ += str_.split(',', 3)

>>> print(str_list1_)

>>> ['zai', 'yu', 'you']

——End

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值