像列表一样处理字符串

知识点

Python中字符串可以看作字符的列表,支持下标索引取值,但字符串是不可变对象,不能修改其中某个字符

代码

booklist = ["java","csharp","cplusplus"]

# booklist[0] 获取列表第0个元素,得到字符串 "java"
print(booklist[0])

# booklist[0][0] 双重下标:先取列表第0项字符串,再取这个字符串的第0个字符
print(booklist[0][0])Code language: PHP (php)

运行输出:

java
j

索引规则

  1. 正向索引:从0开始
    "java"j[0]a[1]v[2]a[3]
  2. 负向索引:-1代表最后一个字符
booklist[0][-1]   # 输出 a,取java最后一位Code language: CSS (css)
  1. 索引越界报错
    字符串长度是4,最大下标为3,访问[4]会抛出:
    IndexError: string index out of range 字符串索引超出范围
strd = "java"
print(strd[1])  # 输出 aCode language: PHP (php)

字符串首字母作为字典key

需求:把列表里的字符串存入字典,用每个字符串首字母作为字典的key

books = ["java","csharp","cplusplus","python"]
booksdict = {}

booksdict[books[0][0]] = books[0]   # books[0][0]拿到"j"
booksdict[books[1][0]] = books[1]   # books[1][0]拿到"c"
booksdict[books[2][0]] = books[2]
booksdict[books[3][0]] = books[3]

print(booksdict)
# {'j': 'java', 'c': 'csharp', 'p': 'python'}Code language: PHP (php)

注意

字符串可以读取下标字符,但不能赋值修改

s = "hello"
s[0] = "H"  # 报错!字符串不可修改Code language: PHP (php)

循环简化写法

books = ["java","csharp","cplusplus","python"]
booksdict = {}
for item in books:
    booksdict[item[0]] = item
print(booksdict)Code language: PHP (php)

练习

  1. s = "apple",取出第一个字符、最后一个字符怎么写?
  2. 列表lst=["cat","dog","bird"],取出dog的第一个字符。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注