Python核心丨字符串

字符串


字符串基础

字符串是Python中很常见的一种数据类型,比如日记的打印,函数的注释、数据库的访问、变量的基本操作等等。

  • 描述

字符串是由独立字符组成的一个序列

name = 'jason'
city = 'beijing'

# 单引号、双引号和三引号的字符串是一模一样的
s1 = 'hello'
s2 = "hello"
s3 = """hello"""
s1 == s2 == s3
True

# 内嵌带引号的字符串
"I'm a student"

三引号字符串,主要应用于多行字符串的情景

# 函数注释
def calculate_similarity(item1, item2):
    """
    Calculate similarity between two items
    Args:
        item1: 1st item
        item2: 2nd item
    Returns:
      similarity score between item1 and item2
    """
字符串的常用操作
  • 字符串支持索引,切片和遍历
name = 'jason'
name[0]
'j'
name[1:3]
'as'
  • 遍历字符串相当于遍历字符串中的每个字符
for char in name:
    print(char)   
j
a
s
o
n
  • 字符串是不可变的(immutable),改变一个字符串内部的字符是错误的,不允许的
s = 'hello'
s[0] = 'H'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
  • Python中字符串的改变,通常只能通过创建新的字符串来完成
s = 'H' + s[1:]
s = s.replace('h', 'H')
  • 使用’+='的字符串拼接方法更方便
str1 += str2  # 表示str1 = str1 + str2

实例

s = ''
for n in range(0, 100000):
    s += str(n)

每次处理字符串的拼接操作时(str1+=str2),Python首先会检测str1还有没有其他的引用。

如果没有的话,就会尝试原地扩充字符串buffer的大小,而不是重新分配一块内存来创建新的字符串并拷贝。时间复杂度为O(n)

  • 字符串内置函数jion也可以对字符串进行拼接
l = []
for n in range(0, 100000):
    l.append(str(n))
l = ' '.join(l) 

append操作是O(1)复杂度,字符串同理

  • 字符串的分割函数split()

语法

string.split(separator)

表示把字符串按照separator分割成子字符串,并返回一个分割后子字符串组合的列表,常应用于对数据的解析处理

def query_data(namespace, table):
    """
    given namespace and table, query database to get corresponding
    data         
    """

path = 'hive://ads/training_table'
namespace = path.split('//')[1].split('/')[0] # 返回'ads'
table = path.split('//')[1].split('/')[1] # 返回 'training_table'
data = query_data(namespace, table) 
  • 其他常见函数

string.strip(str),表示去掉首尾的str字符串;

string.lstrip(str),表示值去掉开头的str字符串;

string.rstrip(str),表示之去掉尾部的str字符串;

字符串的格式化

使用一个字符串作为模板,模板中通常有格式符。这些格式符为后续真实值预留位置,以呈现出真实值应该呈现的格式。

字符串的格式化通常用在程序的输出、logging等场景

示例

  • 给定一个用户的userid,要去数据库中查询该用户的一些信息,并返回
print('no data available for person with id: {}, name: {}'.format(id, name))

在之前版本中,字符串格式化通常用%来表示

print('no data available for person with id: %s, name: %s' % (id, name))

推荐使用format函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值