Python实用技巧--string篇

  • byte_size

返回字符串的长度(以字节为单位)

def byte_size(string):
  return len(string.encode('utf-8'))

示例

byte_size('?') # 1
byte_size('Hello World') # 11
  • camel

将字符串转换为驼峰式

import re

def camel(s):
  s = re.sub(r"(\s|_|-)+", " ", s).title().replace(" ", "")
  return s[0].lower() + s[1:]

示例

camel('some_database_field_name'); # 'someDatabaseFieldName'
camel('Some label that needs to be camelized'); # 'someLabelThatNeedsToBeCamelized'
camel('some-javascript-property'); # 'someJavascriptProperty'
camel('some-mixed_string with spaces_underscores-and-hyphens'); # 'someMixedStringWithSpacesUnderscoresAndHyphens'
  • capitalize

大写字符串的第一个字母。

def capitalize(string, lower_rest=False):
  return string[:1].upper() + (string[1:].lower() if lower_rest else string[1:])

示例

capitalize('fooBar') # 'FooBar'
capitalize('fooBar', True) # 'Foobar'
  • capitalize_every_word

将字符串中每个单词的首字母大写。

def capitalize_every_word(string):
  return string.title()

示例

capitalize_every_word('hello world!') # 'Hello World!'
  • decapitalize

将字符串的首字母小写。

def decapitalize(str, upper_rest=False):
  return str[:1].lower() + (str[1:].upper() if upper_rest else str[1:])

示例

decapitalize('FooBar') # 'fooBar'
decapitalize('FooBar', True) # 'fOOBAR'
  • is_anagram

检查一个字符串是否是另一个字符串的字谜(不区分大小写,忽略空格,标点符号和特殊字符)。

def is_anagram(str1, str2):
  _str1, _str2 = str1.replace(" ", ""), str2.replace(" ", "")

  if len(_str1) != len(_str2):
    return False
  else:
    return sorted(_str1.lower()) == sorted(_str2.lower())

示例

is_anagram("anagram", "Nag a ram")  # True
  • kebab

将字符串转换为烤肉串大小写

import re

def kebab(str):
  return re.sub(r"(\s|_|-)+","-",
    re.sub(r"[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+",
    lambda mo: mo.group(0).lower(),str)
  )

示例

kebab('camelCase'); # 'camel-case'
kebab('some text'); # 'some-text'
kebab('some-mixed_string With spaces_underscores-and-hyphens'); # 'some-mixed-string-with-spaces-underscores-and-hyphens'
kebab('AllThe-small Things'); # "all-the-small-things"
  • n_times_string

打印相同的字符串一定次数。

def n_times_string(str,n):
  return (str * n)

示例

n_times_string('py', 4) #'pypypypy'
  • palindrome

如果给定的字符串是回文,则返回True,否则返回False。

from re import sub

def palindrome(string):
  s = sub('[\W_]', '', string.lower())
  return s == s[::-1]

示例

palindrome('taco cat') # True
  • snake

将字符串转换为蛇形。

import re

def snake(str):
  return '_'.join(re.sub('([A-Z][a-z]+)', r' \1',
    re.sub('([A-Z]+)', r' \1',
    str.replace('-', ' '))).split()).lower()

示例

snake('camelCase') # 'camel_case'
snake('some text') # 'some_text'
snake('some-mixed_string With spaces_underscores-and-hyphens') # 'some_mixed_string_with_spaces_underscores_and_hyphens'
snake('AllThe-small Things') # "all_the_smal_things"
  • split_lines

将多行字符串拆分为行列表。

def split_lines(str):
  return str.split('\n')

示例

split_lines('This\nis a\nmultiline\nstring.\n') # 'This\nis a\nmultiline\nstring.\n'

 

你可能感兴趣的:(其他)