Python列表,字典,元组,字符串操作

Posted 风影旋新月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python列表,字典,元组,字符串操作相关的知识,希望对你有一定的参考价值。

1. 列表操作

1.1 列表的定义:

names = ["wangjing", "wangjun", "hashiqi"]
names[0] = "wangjing" ...

1.2 切片:取多个元素

names[1:3]    #包含左边,不包含右边
names[-1]      #列表中的最后一个元素
names[-3:]     #取列表的最后三个元素
names[0:3]=names[:3]    #取列表的前三个元素

1.3 追加

names.append(xiaojingzi)    #在列表的最后插入一个元素

1.4 插入

names.insert(1, liuyumao)    #插入一个元素,第一个参数为在列表中插入的位置

1.5 修改

names[2] = weichong    #将列表的第三个元素修改

1.6 删除

names.remove(weichong)        #删除列表中‘weichong‘的元素
names.pop(1)                           #删除列表中第二个元素,并返回
del names[1]                            #第三种方法

1.7 扩展

names2 = [1, 2, 3, 4] 
names.extend(names2)    #[‘#jjkj‘, ‘4djisd‘, ‘hashiqi‘, ‘wangjing‘, ‘wangjun‘, 1, 2, 3, 4]

1.8 copy

# 浅copy的三种形式
p1 = copy.copy(person)
p2 = person[:]
p3 = list(person)
#浅copy的用途,创建联合账号
person = [name, [saving, 100]]
p1 = copy.copy(person)
p2 = person[:]
p1[0] = ales
p2[0] = fengjia
p1[1][1] = 2000
print(p1)
print(p2)
# p1 p2 的saving都发生了变化
# 深copy的形式
names3 = copy.deepcopy(names)

1.9 统计

names=[Alex, Tenglan, Amy, Tom, Amy, 1, 2, 3]
names.count("Amy")            # 2

1.10 排序

names.sort()    #特殊字符,数字,大写字母,小写字母,不同的数据类型不能够放在一起排序,报错

1.11 反转

names.reverse() #反转

1.12 获取下标

names.index(xiaojingzi)    # 获取下标

2 元组

元组和列表差不多,只是一旦创建,便不能修改

names = ("alex","jack","eric")
names.count(alex)       #统计元素的个数            
names.index(ales)        #获取元素的索引

3 字符串操作

name = My 	 name is {name} and i am {years} old

print(name.capitalize())        # 首字母大写,不改变原来的字符串
print(name.count(a))          # 统计字符的个数
print(name.center(50, -))     # name居中,不够的使用-补齐
print(name.endswith(ax))      # 判断字符串是否是以某某结尾
print(name.expandtabs(tabsize=30))      # 扩展tab键
print(name.find(l))   # 查找字符
print(name[3:])     # 字符串的切片
print(name.format(name=alex, years=20))   # format的格式
print(name.format_map({name: laex, years: 12}))   # 字典
print(avc278.isalnum())   # 只包含英文字符和数字
print(abA.isalpha())  # 纯英文字符
print(1A.isdecimal())     # 是否是十进制
print(232.isdigit())  # 判断是否是数字
print(True.isidentifier())      # 判断是否是合法的标识符
print(a A.islower())  # 判断是不是小写
print(33.3.isnumeric())   # 判断是不是数字
print( .isspace())    # 判断是不是空格
print(My Name Is.istitle())   # 判断是不是标题,每个字母开头必须大写
print(My Name Is.isprintable())   # 判断是否能够打印
print(My Name Is.isupper())   # 判断是否是大写
print([‘‘.join([1, 2, 3])])  # 字符拼接成字符串
print(name.ljust(50, *).format(name=wangjing, years=20))    # 保证最小长度为50,不够长度在最右边补*
print(name.rjust(50, -).format(name=wangjing, years=20))    # 保证最小长度为50,不够长度在最左边补-
print(Ales.lower())   # 字符串全部转换成小写
print(Ales.upper())   # 字符串全部转换成大写
print(
Alex
.lstrip())    # 去掉左边的空格和回车
print(
Alex
.rstrip())    # 去掉右边的空格和回车
print(
Alex
.strip())   # 同时去掉左边和右边的回车以及换行
p = str.maketrans(abcdef, 123456)   # 将abcdef 分别用123456来代替
print(alex li.translate(p))   # 使用P的代替规则来改写字符串
print(alesl.replace(l, L, 1))     # 将原字符串中的内容使用新的字符来代替,1代表代替其中的几个字符
print(alesl.rfind(8))   # 从左往右查找返回靠右侧的所查找的字符的索引,查找不到返回-1
print(alex lil.split(l))   # 将字符串按照空格(默认)分割
print(alex
 lil.splitlines())   # 将字符串按照换行分割
print(alex li.swapcase())     # 字符全部转换成大写
print(ales li.title())        # 字符转换成标题输出,每个单词大写
print(lex li.zfill(50))       # 不够用0填充

4 字典操作

4.1 字典的语法

info = {
    stu1101: TengLan Wu,
    stu1102: LongZe Luola,
    stu1103: XizoZe Maliya
}

字典的特性:

字典是无序的并且关键字必须是唯一的

4.2 增加

info[stu1104] = CangjingKong    # 字典增加

4.3 修改

info[stu1101] = 武藤兰     # 字典修改

4.4 删除

del info[stu1101]     # 字典删除
info.pop(stu1102)     # 字典删除
info.popitem()          # 随机删除一个

4.5 字典查询

info.get(stu1103)        #安全获取,没有的话返回none
info[stu1101]

4.6 字典合并

b = {
    stu1104: xiaojignzi,
    stu1106: xiaojunzi
}
info.update(b)  # 两个字典合并,如果info中有的元素,则修改,如果没有,则添加

4.7 字典转换成列表

print(info.items())  # 字典转换成列表

4.8 字典的初始化

c = dict.fromkeys([6, 7, 8], [1, {name: alex}, 444])    # 初始化字典
c[7][1][name] = Jack        #注意:三个占用同一个内存,一个修改全部修改
# {8: [1, {‘name‘: ‘Jack‘}, 444], 6: [1, {‘name‘: ‘Jack‘}, 444], 7: [1, {‘name‘: ‘Jack‘}, 444]}

4.9 判断是否在字典中

stu1103 in info

4.10 字典中有该元素不做操作,没有则添加

info.setdefault(stu1103, baiduyun)  # 如果没有该元素,则添加,有则不做操作

4.11 字典的遍历

for i in info:      # 字典的循环,i返回字典的索引,速度快,推荐
    print(i, info[i])

for k, v in info.items():        #第二种方法,不推荐
    print(k, v)

5. 购物车实例

product_list = [
    (iphone, 5800),
    (mac, 9800),
    (Bike, 800),
    (Watch, 10600),
    (coffee, 31),
    (alex python, 120),
]
shopping_list = []
salary = input("Input your salary:")
if salary.isdigit():
    salary = int(salary)
    while True:
        for index, item in enumerate(product_list):
            print(index, item)
        user_choice = input("选择要买嘛?>>>:")
        if user_choice.isdigit():
            user_choice = int(user_choice)
            if user_choice < len(product_list) and user_choice >= 0:
                p_item = product_list[user_choice]
                if p_item[1] <= salary:
                    shopping_list.append(p_item)
                    salary = salary - p_item[1]
                    print("Add %s into shopping cart, your current balance is %d" % (p_item, salary))
                else:
                    print(033[41;lm你的余额只剩下[%s]啦,还没个毛线33[Om % salary)
            else:
                print(product code [%s] is not exitst! % user_choice)
        elif user_choice == q:
            print(-------shopping list---------)
            for p in shopping_list:
                print(p)
            print("your current balance:", salary)
            exit()
    else:
        print(invalid option)

6. 三级菜单实例

data = {
    北京: {
        昌平: {
            沙河: [lodboy, test],
            天通苑: [链家地产, 我爱我家],
        },
        朝阳: {
            望京: [奔驰, 陌陌],
            国贸: [CICC, HP],
            动直门: [Advent, 飞信],
        },
        海定: {

        },
    },
    山东: {
        德州: {},
        青岛: {},
        济南: {},
    },
    广东: {
        东莞: {},
    }
}

exit_flag = False


while not exit_flag:
    for i in data:
        print(i)
    choice = input(选择进入1>>)
    if choice in data:
        while not exit_flag:
            for i2 in data[choice]:
                print(	, i2)
            choice2 = input(选择进入2>>)
            if choice2 in data[choice]:
                while not exit_flag:
                    for i3 in data[choice][choice2]:
                        print(	, i3)
                    choice3 = input(选择进入3>>)
                    if choice3 in data[choice][choice2]:
                        for i4 in data[choice][choice2][choice3]:
                            print(		, i4)
                        choice4 = input(最后一层)
                        if choice4 == b:
                            pass    # 什么都不做
                        elif choice4 == q:
                            exit_flag = True
                    elif choice3 == b:
                        break
                    elif choice3 == q:
                        exit_flag = True
            elif choice2 == b:
                break
            elif choice2 == q:
                exit_flag = True
    elif choice == b:
        break
    elif choice == q:
        exit_flag = True

 




以上是关于Python列表,字典,元组,字符串操作的主要内容,如果未能解决你的问题,请参考以下文章

详解Python数据类型:字符串列表元组字典集合

详解Python数据类型:字符串列表元组字典集合

详解Python数据类型:字符串列表元组字典集合

python3.0 day02 列表元组 字典字符串操作

Python 基础入门笔记———— 字符串列表元组集合字典

python数据结构之列表字典元组集合