在 Python 中,如何从列表的第一个字符串中获取第一个字符?
似乎我可以使用 mylist[0][1:],但是它没有给我第一个字符。
mylist[0][1:]
>>> mylist = [] >>> mylist.append("asdf") >>> mylist.append("jkl;") >>> mylist[0][1:] 'sdf'
尝试 mylist[0][0]。这应该返回第一个字符。
mylist[0][0]
在 python 中从0开始建立索引。你写了[1: ]这不会返回你的第一个字符在任何情况下-这将返回你的休息(除了第一个字符)的字符串。
如果你有以下结构:
mylist = ['base', 'sample', 'test']
并且希望获得第一个字符串(条目)的第一个 char:
myList[0][0] >>> b
如果所有的第一个字符:
[x[0] for x in myList] >>> ['b', 's', 't']
如果你有短信:
text = 'base sample test' text.split()[0][0] >>> b
你差点就答对了,最简单的方法是
mylist[0][0] # get the first character from the first item in the list
但是
mylist[0][:1] # get up to the first character in the first item in the list
也行得通。
您希望 结束在第一个字符之后(字符零) ,而不是 开始在第一个字符之后(字符零) ,这就是您问题中的代码的意思。
获取裸 Python 字符串的第一个字符:
>>> mystring = "hello" >>> print(mystring[0]) h >>> print(mystring[:1]) h >>> print(mystring[3]) l >>> print(mystring[-1]) o >>> print(mystring[2:3]) l >>> print(mystring[2:4]) ll
从 python 列表的第一个位置的字符串中获取第一个字符:
>>> myarray = [] >>> myarray.append("blah") >>> myarray[0][:1] 'b' >>> myarray[0][-1] 'h' >>> myarray[0][1:3] 'la'
Numpy operations are very different than python list operations.
Python 有列表切片、索引和子集。 Numpy 有屏蔽、切片、子集和索引。
这两个视频让我明白了一些事情。
“丢掉你的循环,使用 NumPy 进行快速数值计算”作者: PyCon 2015: Https://youtu.be/eeuxkg97yrw?t=22m22s
"NumPy Beginner | SciPy 2016 Tutorial" by Alexandre Chabot LeClerc: Https://youtu.be/gtejj3rcdde?t=1h24m54s
如果你的列表包含非字符串,例如 mylist = [0, [1, 's'], 'string'],那么这里的答案不一定有效。在这种情况下,使用 next()通过 isinstance()检查查找第一个字符串就可以了。
mylist = [0, [1, 's'], 'string']
next()
isinstance()
next(e for e in mylist if isinstance(e, str))[:1]
请注意,''[:1]返回 '',而 ''[0]返回 IndexError,因此根据用例的不同,两者都可能有用。
''[:1]
''
''[0]
IndexError
如果在 mylist中没有字符串,则上述操作将导致 StopIteration。在这种情况下,一种可能的实现是将默认值设置为 None,并且只有在找到字符串时才获取第一个字符。
mylist
StopIteration
None
first = next((e for e in mylist if isinstance(e, str)), None) first_char = first[0] if first else None