ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python基础 day7

2020-03-25 17:05:22  阅读:267  来源: 互联网

标签:index jason list1 python day7 基础 list2 print dict1


Day7 笔记

一、基础数据类型的补充

字符串str

s1 = 'jaSOn'
print(s1.capitalize())  # 首字母大写,其余变小写
print(s1.swapcase())  # 大小写反转

s2 = 'i am jason'
print(s2.title())  # 每个单词的首字母大写

s3 = 'jason'
print(s3.center(20, '*'))  # 前后各放20个*

# find() 和index()  通过元素找索引,如果找不到,find输出-1,index报错
s4 = 'jason'
print(s4.find('a'))
print(s4.index('o'))

元组tuple

# 元组中如果只有一个元素,并且没有逗号,那么它就不是元组。
# count()
tuple1 = (1, 2, 2, 2, 2, 3, 3, 3)
print(tuple1.count(2))
# index()
tuple2 = ('aloha', 'jason', 'carly')
print(tuple2.index('aloha'))

列表list

# 1. index() 和字符串元组用法一样
list1 = ['aloha', 'jason', 'carly']
print(list1.index('aloha'))

# 2. sort() 排序
list2 = [1, 3, 6, 10, 2, 5, 7]
list2.sort()  # 默认从小到大排序
list2.sort(reverse=True)  # 从大到小排序
list2.reverse()  # 反转排序
print(list2)


# 3. 列表相加
list1 = [1, 2, 3]
list2 = ['jason', 'carly', 1, 2]
list3 = list1 + list2
print(list3)

# 4. 列表可以与数字相乘
list1 = [1, 'aloha', '哈哈哈']
list2 = list1 * 3
print(list2)


# 容易掉坑的地方
# 5.倒叙法删除list1中索引为奇数的元素
list1 = [1, 2, 3, 4, 5]
for index in range(len(list1)-1, -1, -1):
    if index % 2 == 1:
        list1.pop(index)
print(list1)
循环一个列表的时候最好不要改变列表的大小

字典dict

# 1. update()
# 增&改的三种写法
dict1 = {'name': 'jason', 'age': 24}
dict1.update({'high': 168, 'name': 'carly'})  # 等同于dict.update(dict2)
dict1.update(hobby='sleep', age='20')
dict1.update([('what', 'dog'), ('hobby', 'eat')])
print(dict1)

# 2. fromkeys
dict1 = dict.fromkeys([1, 2, 3], 'jason')
print(dict1)  # 结果为{1: 'jason', 2: 'jason', 3: 'jason'}
###注意###
dict1 = dict.fromkeys([1, 2, 3], [])
print(dict1)  # 此时结果为{1: [], 2: [], 3: []}
dict1[1].append(666)
print(dict1)  # 结果为{1: [666], 2: [666], 3: [666]}
# 我们打印下dict1中所有值的id看一下
for value in dict1.values():
    print(id(value))
# 可以发现dict1所有值的id相同,因此,可以知道,dict1.fromkeys(lterable, value)方法中的值共用一个


# 3.将字典中键含有'k'元素的键值对删除
dict1 = {'k1': 'v1', 'k2': 'v2', 'age': '24', 'k3': 'v3', 'name': 'jason'}
# 循环一个字典时,不可以改变这个字典的大小
dict2 = {}
for key in dict1.keys():
    if 'k' not in key:
        dict2.update({key: dict1[key]})
print(dict2)

# 还可以将字典转成列表进行循环
for key in list(dict1.keys()):
    if 'k' in  key:
        dict1.pop(key)
print(dict1)

二、编码的进一步认识

1.不同编码之间不能互相识别
2.数据在内存中全部都是以Unicode编码的,但是数据在网络传输或者存储在硬盘,必须是非Unicode编码

内存中的Unicode编码数据必须先转化成bytes(特殊的字符串数据类型,内部编码非Unicode)

# 英文字符串转换
b1 = b'hello'
print(b1, type(b1))

# 中文字符串转换
s2 = '杨森'
b2 = s2.encode('utf-8')
s3 = b2.decode('utf-8')
print(b2, type(b2))
print(s3, type(s3))

gbk 转换成 utf-8(重要)

# 先获取一个gbk编码
s1 = '中国'
s2 = s1.encode('gbk')
print(s2)   # b'\xd6\xd0\xb9\xfa'

b_gbk = b'\xd6\xd0\xb9\xfa'
ss = b_gbk.decode('gbk')
print(ss, type(ss))
b_utf8 = ss.encode('utf-8')
print(b_utf8)

标签:index,jason,list1,python,day7,基础,list2,print,dict1
来源: https://www.cnblogs.com/west-yang/p/12567246.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有