我试图在Python中以某种方式切片列表。如果我有一个如下所示的列表:
myList = ['hello.how.are.you', 'hello.how.are.they', 'hello.how.are.we']
有没有办法对它进行切片,以便我可以在每个元素的最后一个句点之后获取所有内容?所以,我希望"你","他们"和"我们"。
答案 0 :(得分:4)
没有办法直接以这种方式切割列表;你做的是切每个元素。
您可以轻松地在句点list comprehension上构建split
并获取最后一个元素。
myList = ["hello.how.are.you", "hello.how.are.they", "hello.how.are.we"]
after_last_period = [s.split('.')[-1] for s in myList]
答案 1 :(得分:1)
是的,可以做到:
s.rpsilt(".", 1)[-1]
速度恶魔的脚注:使用split()
甚至比from collections.abc import Iterator
class SequenceIterator(Iterator):
def __init__(self, seq):
self.seq = seq
self.idx = 0
def __next__(self):
try:
ret = self.seq[self.idx]
except IndexError:
raise StopIteration
else:
self.idx += 1
return ret
def seek(self, offset):
self.idx += offset
更快。
答案 2 :(得分:1)
[i.split('.')[-1] for i in myList]
答案 3 :(得分:1)
假设您在每个列表元素周围省略了引号,请使用列表推导和str.split()
:
[x.split('.')[-1] for x in myList]