Zeruns's Blog

Python基础语法(四)—列表、元组、字典、集合、字符串

Python基础语法(一):https://blog.zeruns.tech/index.php/archives/54/
Python基础语法(二):https://blog.zeruns.tech/index.php/archives/112/
Python基础语法(三)——函数:https://blog.zeruns.tech/index.php/archives/150/

列表

基本概念

列表的使用方式

list = ["zeruns","blog","blog.zeruns.tech",9527,[0,1,2,[1,2]]]#创建一个列表,一个列表里可以有多种数据类型,甚至可以嵌套列表来做二或三维列表
#          0       1           2             3       4
#         -5      -4          -3            -2      -1
print(list[0])
print(list[2])
print(list[4][2])
print(list[4][3][0])
print(list[-1])
print(list[-2])
'''
结果:
zeruns
blog.zeruns.tech
2
1
[0, 1, 2, [1, 2]]
9527
'''

列表的基本操作

列表操作符操作符含义
< list1 > + < list2 >连接两个列表
< list > * < 整数类型 >对列表进行整数次重复
< list >[< 整数类型 >]索引列表中的元素
len( < seq > )获取列表中元素个数
for < var > in < list > :对列表进行循环列举
< list >[< 整数类型 > : < 整数类型 >]取列表的一个子序列
< expr > in < list >成员检查,判断< expr >是否在列表中

列表的相关方法

方法方法含义
< list >.append( x )将元素x增加到列表的最后
< list >.sort( )将列表元素排序,默认为升序
< list >.reverse( )将列表元素反转
< list >.index( )返回第一次出现元素x的索引值
< list >.insert( i, x )在位置i处插入新元素x
< list >.count( x )返回元素x在列表中的数量
< list >.remove( x )删除列表中第一次出现的元素x
< list >.pop( i )取出列表中位置i的元素,并删除它
>>> a = [2,0,9,1,5]
>>> b = ['c','w','b','a']
>>> a.append(9)
>>> a
[2, 0, 9, 1, 5, 9]
>>> a.sort()
>>> a
[0, 1, 2, 5, 9, 9]
>>> a.reverse()
>>> a
[9, 9, 5, 2, 1, 0]
>>> b.sort()
>>> b
['a', 'b', 'c', 'w']
>>> a.index(5)
2
>>> a.insert(2,7)
>>> a
[9, 9, 7, 5, 2, 1, 0]
>>> a.count(9)
2
>>> a.remove(9)
>>> a
[9, 7, 5, 2, 1, 0]
>>> a.pop(0)
9
>>> a
[7, 5, 2, 1, 0]

列表推导式

data = [i for i in range(10)]
#等价于
data = []
for i in range(10):
    data.append(i)
'--------------分割线---------------'
data = [2**i for i in range(10)]
#等价于
data = []
for i in range(10):
    data.append(2**i)
'--------------分割线---------------'
data = [num for num in range(20) if num%2==1]
#等价于
data = []
for num in range(20):
    if num%2==1:
        data.append(num)

应用

一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配

答案:

#encoding=utf-8

import random

# 定义一个列表用来保存3个办公室
offices = [[],[],[]]

# 定义一个列表用来存储8位老师的名字
names = ['A','B','C','D','E','F','G','H']

i = 0
for name in names:
    index = random.randint(0,2)  
    offices[index].append(name)

i = 1
for tempNames in offices:
    print('办公室%d的人数为:%d'%(i,len(tempNames)))
    i+=1
    for name in tempNames:
        print("%s"%name,end='')
    print("\n")
    print("-"*20)

运行结果如下:

元组

基本概念

元组的使用

>>> a = ('hello',2020,110)
>>> a
('hello', 2020, 110)
>>> a[1]
2020

元组中的元素值是不允许修改和删除的,但我们可以使用del语句来删除整个元组

>>> a = ('hello',2020,'blog.zeruns.tech')
>>> print(a)
('hello', 2020, 'blog.zeruns.tech')
>>> del a
>>> print(a)
Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    print(a)
NameError: name 'a' is not defined

所谓元组的不可变指的是元组所指向的内存中的内容不可变。

>>> tup = ('r', 'u', 'n', 'o', 'o', 'b')
>>> tup[0] = 'g'     # 不支持修改元素
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> id(tup)     # 查看内存地址
4440687904
>>> tup = (1,2,3)
>>> id(tup)
4441088800    # 内存地址不一样了

字典

基本概念

>>> hhh = {'website':'blog.zeruns.tech','name':'zeruns'}
>>> hhh['website']
'blog.zeruns.tech'

常用方法

方法描述
keys()返回字典中键的列表
values()返回字典中值的列表
items()返回tuples的列表。每个tuple由字典的键和相应值组成
clear()删除字典的所有条目
copy()返回字典高层结构的一个拷贝,但不复制嵌入结构,而只复制对那些结构的引用
update(x)用字典x中的键值对更新字典内容。
get(x[,y]))返回键x,若未找到该键返回none,若提供y,则未找回时返回y
str(x)以字符串形式输出字典x
len(x)返回字典x的元素个数,即键的总数。
>>> hhh = {'website':'blog.zeruns.tech','name':'zeruns'}
>>> hhh.keys()
dict_keys(['website', 'name'])
>>> hhh.values()
dict_values(['blog.zeruns.tech', 'zeruns'])
>>> hhh.items()
dict_items([('website', 'blog.zeruns.tech'), ('name', 'zeruns')])
>>> hhh.copy()
{'website': 'blog.zeruns.tech', 'name': 'zeruns'}
>>> awsl = {'website':'https://blog.zeruns.tech'}
>>> hhh.update(awsl)
>>> hhh
{'website': 'https://blog.zeruns.tech', 'name': 'zeruns'}
>>> hhh.get('website')
'https://blog.zeruns.tech'
>>> hhh.get('hhh','666')
'666'
>>> hhh.clear()
>>> hhh
{}
>>> dict = {'Name': 'zeruns', 'Age': 7, 'Class': 'First'}
>>> str(dict)
"{'Name': 'zeruns', 'Class': 'First', 'Age': 7}"

字典元素修改、添加与删除

集合

概述

set(集合)

集合的常用方法

字符串

概述

字符串操作

字符串操作

操作含义
+连接
*重复
< string >[ ]索引
< string >[ : ]剪切
len(< string >)长度
< string >.upper()字符串中字母大写
< string >.lower()字符串中字母小写
< string >.strip()去两边空格及指定字符
< string >.split()按指定字符分隔字符串为数组
< string >.join()连接两个字符串序列
< string >.find()搜索指定字符串
< string >.replace()字符串替换
for < var > in < string >字符串迭代

常用方法

字符串格式化

python字符串格式化符号:

符 号描述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g浮点型数据 会去掉多余的零 至多保留6位
%G浮点型数据 会去掉多余的零 至多保留6位
%p用十六进制数格式化变量的地址

格式化操作符辅助指令:

符号描述
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )
< sp >在正数前面显示空格
#在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0显示的数字前面填充'0'而不是默认的空格
%'%%'输出一个单一的'%'
(var)映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

应用

编写程序,完成以下要求:
统计字符串中,各个字符的个数
比如:"hello world" 字符串统计的结果为: h:1 e:1 l:3 o:2 d:1 r:1 w:1

答案:https://gitee.com/zeruns/Python-programming-exercises/blob/master/%E5%9F%BA%E7%A1%80/%E7%BB%9F%E8%AE%A1%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%AD%E5%90%84%E5%AD%97%E7%AC%A6%E4%B8%AA%E6%95%B0.py

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »