Python教程

Python基础学习07——之字符串、集合、字典

本文主要是介绍Python基础学习07——之字符串、集合、字典,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Python基础学习07——之字符串、集合、字典

文章目录

      • Python基础学习07——之字符串、集合、字典
      • 1. 字符串
        • 1.1 字符串的基本运算
        • 1.2 字符串中特别重要的两个方法
        • 1.3 字符串的格式化输出
        • 1.4字符串的应用场景
      • 2. 集合
        • 2.1 集合的定义
        • 2.2 集合的运算
      • 3. 字典
        • 3.1 字典的定义
        • 3.2 字典的常用运算

1. 字符串

1.1 字符串的基本运算

  • 注意字符串是不可以变的数据类型

  • 字符串的基本运算包括,字符串的拼接(常用)、成员运算、拆分等操作

  • 具体操作请参考上一篇

1.2 字符串中特别重要的两个方法

contexts = 'hello,world!'
print(contexts.strip('!')) # 脱去
#hello,world
print(contexts.strip('!').split(',')) # 拆分,生成一个列表
#['hello', 'world']

# join函数可以实现将列表连接成字符串
print(' '.join(contexts.strip('!').split(',')))
#hello world

1.3 字符串的格式化输出

contexts = 'hello,world!'
print(contexts.center(80, '='))
print(contexts.rjust(80, '+'))
print(contexts.ljust(80, '+'))
print(contexts.zfill(20))  # 不够左边补0填充

a,b=12,34
print(f'{a}+{b}={a+b}')
print('{}+{}={}'.format(a,b,a+b))
print('{0}+{1}={2}'.format(a,b,a+b))

print(f'{a}/{b}={a/b:.2%}')
print(f'{a}*{b}={a*b:.2e}')
print(f'{a:<10d}')
print(f'{a:0>10d}')

在这里插入图片描述

1.4字符串的应用场景

  • 求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。
    例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
  • 编程思想:利用字符串拼接,在用int()函数转换为整数
n = input('n=')
num = int(input('num='))
total = 0
for _ in range(num):
    total += int(n)
    n += n[0]

print(total)
  • 统计一个字符中的空格、英文字母、数字、其它字符的数量
context = 'i love you than 你 爱 me! 1314520'
space = 0
eng = 0
num = 0
other = 0

# 判断性质
for i in range(len(context)):
    if context[i].isdigit():
        num += 1
    elif context[i].isspace():
        space += 1
    elif context[i].isalpha():
        eng += 1
    else:
        other += 1

print(space)
print(eng)
print(num)
print(other)

2. 集合

2.1 集合的定义

  • python程序中的集合和我们以前上学读书的集合是一个意思,也就是把具有相同特征的事务归纳为某一类,把这个类抽象为集合。
  • 集合具有三个特别重要的性质
    1. 无序性 ,简单来讲就是集合里面的元素是没有顺序可言的
    2. 互异性,集合里面的元素不可以重复
    3. 确定性,元素要么存在集合中,要么不存在集合中。不能出现有歧义。
  • 定义一个集合
# 定义一个空的集合
set1 = set() 
#set2={} # 不能够这样定义集合,会被python解释器会被认为是字典
print(type(set2)) # <class 'dict'> 
set3={1,23,45,56,78,23}
  • 集合的遍历
set3={1,23,45,56,78,23}
for elem in set3:
    print(elem)

2.2 集合的运算

# 集合的成员运算远远高于列表的成员运算
print(1 in set1)  # 体现确定性,要么在集合中,要么不在集合中。
print(1 not in set1)

# 体现无序性,不可用小标去索引
# TypeError: 'set' object is not subscriptable
# print(set1[1])
set1 = {1, 2, 3, 4, 6, 7}
set2 = {1, 3, 55, 56}
# & 交集
print(set1 & set2)
print(set1.intersection(set2))

# | 并集
print(set1 | set2)
print(set1.union(set2))
# 差集
print(set1 - set2)
print(set1.difference(set2))

# 对称差
print(set1 ^ set2)
print((set1 | set2) - (set1 & set2))
print(set1.symmetric_difference(set2))

# 判断真子集
print(set1 < set2)
# 判断子集
print(set1 <= set2)
# 判断超集
print(set1 > set2)
  • 集合底层采用哈希存储(设计一个好的hash函数)
  1. 可变容器都无法计算表哈希码,因此都不能放到集合中
  2. 可变容器,列表、集合、字典
l = [12, 3]
# TypeError: unhashable type: 'list'
# set1={[12,3]}

set1 = {(1, 2), 'tian'}
print(set1)

# TypeError: unhashable type: 'set'
# set2={set1}
set1.add('yu')
print(set1)
# 指定删除某个元素
set1.discard('yu')
print(set1)
# 随机删除
print(set1.pop())
# print(set1.pop())
print(set1)
# 清空集合
set1.clear()
  • 如图:

在这里插入图片描述

3. 字典

3.1 字典的定义

  • python中的字典数据类型,类似于以前我们用的“中华字典”是一种通过键值对的形式来存储数据
  • key,是唯一的,可以通过key来访问值
  • 底层用hash来存储数据,索引key不能是可变数据类型
# 定义一个空字典
dict1 = dict()
print(dict1, type(dict1)) #{} <class 'dict'>
dict2={'name':'yuping','age':'23','merit':'编程'}
print(dict2,type(dict2))
# {'name': 'yuping', 'age': '23', 'merit': '编程'} <class 'dict'>
  • 字典的value可以是任意数据类型
# 创建字典
student = {'id': 20181703034,
           'name': '小天',
           'birthday': '11-09',
           'favor': ['reading', 'play', 'music', '编程'],
           'contacts': {'email': '504512467',
                        'tel': '15585270810'
                        }}

print(student['name']) # 小天
print(student['contacts']['tel']) # 15585270810

3.2 字典的常用运算

dict2={'name':'yuping','age':'23','merit':'编程'}
# 根据键来获取对应的值
print(dict2.get('name'))
# 按键删除某个键值对
dict2.pop('name')
print(dict2)
# 清空
dict2.clear()
print(dict2)
这篇关于Python基础学习07——之字符串、集合、字典的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!