问题:输出字符串中的前100个字符
似乎可以在python中找到子字符串函数。
假设我要输出字符串中的前100个字符,该怎么办?
我也想安全地进行操作,测量字符串是否为50个字符,它应该不会失败。
回答 0
print my_string[0:100]
回答 1
回答 2
简单:
print mystring[:100]
回答 3
为了回答Philipp的担忧(在评论中),对于unicode字符串也可以切片
>>> greek=u"αβγδεζηθικλμνξοπρςστυφχψω"
>>> print len(greek)
25
>>> print greek[:10]
αβγδεζηθικ
如果您想将以上代码作为脚本运行,请将此行放在顶部
# -*- coding: utf-8 -*-
如果您的编辑器未保存为utf-8,请替换为正确的编码
回答 4
数组的切片是通过进行的[first:last+1]
。
我倾向于使用很多技巧之一是用省略号指示额外的信息。因此,如果您的字段是一百个字符,我将使用:
if len(s) <= 100:
print s
else:
print "%s..."%(s[:97])
是的,我知道()
在这种情况下对于%
格式化运算符是多余的,这只是我的风格。
回答 5
如果您的字符串不够长,大多数前面的示例都会引发异常。
另一种方法是使用
'yourstring'.ljust(100)[:100].strip()
。
这将给您前100个字符。如果您的字符串的最后符为空格,则可能会得到较短的字符串。
回答 6
使用字符串格式化%
是解决此问题的好方法。这里有些例子。
格式代码'%s'
将转换'12345'
为字符串,但是已经是字符串。
>>> '%s' % '12345'
'12345'
'%.3s'
指定仅使用前三个字符。
>>> '%.3s' % '12345'
'123'
'%.7s'
说要使用前七个字符,但只有五个。没问题。
>>> '%.7s' % '12345'
'12345'
'%7s'
最多使用七个字符,用左侧的空格填充缺少的字符。
>>> '%7s' % '12345'
' 12345'
'%-7s'
是一样的事情,除了在右边填充丢失的字符。
>>> '%-7s' % '12345'
'12345 '
'%5.3'
表示使用前三个字符,但在左侧填充空格以总计五个字符。
>>> '%5.3s' % '12345'
' 123'
除了在右边填充之外,其他内容相同。
>>> '%-5.3s' % '12345'
'123 '
也可以处理多个参数!
>>> 'do u no %-4.3sda%3.2s wae' % ('12345', 6789)
'do u no 123 da 67 wae'
回答 7
[start:stop:step]
因此,如果您只想使用100个第一个字符,请使用your_string[0:100]
或your_string[:100]
如果只想在偶数位置使用your_string[::2]
该字符,请使用“默认值”,以start为0,stop-字符串len,以及step-1。当您不提供其中之一并在其中加上“:”时,它将使用其默认值。