Answers:
print my_string[0:100]
print 'foo'[:100](请注意,它len('foo')是3,所以即使foo[100]不起作用,它也会起作用)
为了回答Philipp的担忧(在评论中),对于unicode字符串也可以切片
>>> greek=u"αβγδεζηθικλμνξοπρςστυφχψω"
>>> print len(greek)
25
>>> print greek[:10]
αβγδεζηθικ
如果您想将以上代码作为脚本运行,请将此行放在顶部
# -*- coding: utf-8 -*-
如果您的编辑器未保存为utf-8,请替换为正确的编码
ς并且σ是相同的字母:-)
greek_alphabet:)
数组的切片是通过进行的[first:last+1]。
我倾向于使用很多技巧之一是用省略号指示额外的信息。因此,如果您的字段是一百个字符,我将使用:
if len(s) <= 100:
print s
else:
print "%s..."%(s[:97])
是的,我知道()在这种情况下对于%格式化运算符是多余的,这只是我的风格。
如果您的字符串不够长,大多数前面的示例都会引发异常。
另一种方法是使用
'yourstring'.ljust(100)[:100].strip()。
这将给您前100个字符。如果您的字符串的最后一个字符为空格,则可能会得到较短的字符串。
使用字符串格式化%是解决此问题的好方法。这里有些例子。
格式代码'%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'