Python day six

  新的数据的类型的介绍:元组(tuple),字典(dictionary)

    元组特点,只可以读,不能修改。

  创建方法:

a = (1, 2, 3, 4)
print(a[1:3])  # 通过切片

print(a[1])  # 元组只可读,不能修改

 字典:可以说是python中非常重要的数据类型,主要由键值构成。 字典是python中唯一的映射关系,采用键值对(key-value)的形式储存数据。python对key进行    哈希函数运算,根据结果决定value的存储地址,所以字典是无储存的,且key必须是可哈希的。    可哈希表示key必须是不可变类型,如:数字.字符串.元组。可变类型:列表,字典### 所谓不可变类型也就是创建后,在内存中开辟了空间,如果将值重新赋值也就是将它的指向转到另一块内存    id()方法输出它的内存    字典(dictionary)是处列表外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的    对象集合。再者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典两个特点:无序,键唯一    如果有两个相同的键在一个字典中后面的会顶掉它    创建方法:

        可以有两种:

            a = [1,2,3]

            a = list((1,2,3))

            dic = {}
dic = dict((('name', 'alex'),))#里面的括号可以是其他的括号

字典的增删改查操作的举例:
# _author:"Isaac_hu"
# data: 2018/2/27
# dic1 = {[1, 2, 3]: 'isaac'}  # 这里会出错应为前面的是不能是可变类型
# print(dic1)

dic = {'name': 'isaac', 'age': 35, 'hobby': {'girl_name': 'hua', 'age': 15}, 'is_handsome': True, 'school': 'Dong'}
print(dic['hobby'])

dic = dict((('name', 'alex'),))
print(dic)
dic = {'name': 'isaac', 'age': 35, 'hobby': 'girl', 'is_handsome': True, 'school': 'Dong'}
print(dic)  # 输出后可能是无序的,因为字典是无序的
# 查  通过键查
print(dic['name'])  # 通过键取出数据
print(type(dic.keys()))  # 类型是dict_key 可以转化通过list函数
print(list(dic.keys()))
print(list(dic.values()))  # 通过values方法输出它的值
print(list(dic.items()))  # 全部输出

# 修改 修改值通过键来找
dic['name'] = 'vic'
print(dic)
# 还可以同update方法
dic1 = {'1': '111', '2': '2222', '3': '3333'}
dic2 = {'4': '111', '5': '2222', '6': '3333'}
dic1.update(dic2)
print(dic1)
print(dic2)

# 删 clear del pop
dic3 = {'name': 'isaac', 'age': 15}
del dic3['name']
print(dic3)  # 删除键值对

dic3.clear()  # 清空
print(dic3)

dic3 = {'name': 'isaac', 'age': 15, 'hobby': 'girl'}
print(dic3.pop('age'))  # 返回被删除键的值
print(dic3)
a = dic3.popitem()  # 随机删除一个键值对,并以元组方式返回
print(a, dic3)

# 其他操作以及涉及的方法
dic4 = dict.fromkeys(['host', 'host2', 'host3'], 'test')
dic4 = dict.fromkeys(['host', 'host2', 'host3'], 'test')
print(dic4)  # {'host': 'test', 'host2': 'test', 'host3': 'test'}
dic4 = dict.fromkeys(['host', 'host2', 'host3'], ['test1', 'test2'])
# 排序
dic5 = {5: '55', 2: '222', 4: '444'}
print(sorted(dic5))
print(sorted(dic5.values()))
print(sorted(dic5.items()))

dic3 = {'name': 'isaac', 'age': 15, 'hobby': 'girl'}

for i in dic3:
    print(i)  # 这样是打印出键
    print(i, dic[i])  # 通过键找值,效率最高

for i, v in dic3.items():
    print(i, v)  # 这个效率不高
# _author:"Isaac_hu"
# data: 2018/2/28

dic = {'name': 'alex'}
dic['age'] = 18
print(dic)

# 如果有就不修改,没有就添加,有返回值对应键的值
dic.setdefault('age', 34)
print(dic)

  嵌套,嵌套是python中十分重要的用法,一个对于列表,字典。不断的嵌套能够创建出菜单管理等。能够十分清晰的展现如省县市的下属关系等等。

  字符串类型:

    是基本也是最关键的一个数据类型,我们的input的函数也就是输入一个字符串。

这里大部分字符串的方法:直接用代码表示了:

# _author:"Isaac_hu"
# data: 2018/2/28
a = "let's go"
print(a)

# 字符串的乘法,用于输出重复的字符
b = 'hello'
print(b*10)

#  通过索引取字符串,这里和切片操作一致,具体见列表
print('hello world'[2:])
# in判断字符串是否在另一个字符串中
print('ast'in'wast')
# %s 格式化字符
name = "isaac"
print('isaac is a good student')
print("%s is a good student" % name)
# 字符串的拼接 + 效率十分低下,会开辟很多内存
a = '123'
b = '456'
d = '44'
# c = a + b
# print(c)
# join方法 前面是用于拼接的东西
c = '-'.join([a, b, d])
print(c)

# string的内置方法
st = 'hello world {name} is {age}'
print(st.count('l'))              # 计算字符串的某个字符的个数
print(st.capitalize())            # 字符串首字母大写
print(st.center(50, '-'))         # 前面的字符的总数,后面的其他的字符,居中 后面必须有东西
print(st.encode())  # 编码----
print(st.endswith('rld'))         # 判断以某某结尾,可以加范围
print(st.startswith('he'))        # 判断以某某开头,也可以加范围
print(st.expandtabs(tabsize=10))  # 改变tab的大小,本来是4个空格可以改	
print(st.find('t'))               # 查找到第一个元素并将索引值返回
print(st.format(name='isaac', age=22))    # 用于格式化输出  待定: ?:{}
print(st.format_map({'name': 'isaac', 'age': 22}))  # 用于格式化输出
print(st.index('h'))  # index和find差不多,但是没有时find会返回-1,index会报错
print('abc456'.isalnum())  # 只要不是特殊字符即返回True
print('0010'.isdecimal())  # 判断是不是一个十进制的数
print('123132'.isdigit())  # 判断是否是个数字必须是整数
print('asf'.isalpha())  # 判断一个数字是否是字母
print('15165'.isnumeric())  # 和isdigit类似
print('1sad'.isidentifier())  # 检验是否是不是合法命名标识
print('abc'.islower())  # 判断一个字符串是不是全小写
print('ABC'.isupper())  # 判断一个字符串是不是全大写
print('  '.isspace())  # 判断是否全为空格
print('My Title'.istitle())  # 每个单词,是否首字母大写
print('MY TITLE'.lower())  # 大写变小写
print('my name'.upper())  # 小写变大写
print('My Title'.swapcase())  # 大写变小写,小写变大写
print('asd'.ljust(50, '*'))  # 左对齐
print('asd'.rjust(50, '*'))  # 右对齐
print(' 	  isa ac 
'.strip())  # 去掉前后所有换行符,空格,制表符
print(' 	  isa ac 
'.lstrip())  # 去掉前所有换行符,空格,制表符
print(' 	  isa ac 
'.rstrip())  # 去掉后所有换行符,空格,制表符
print('My name'.replace('name', 'age'))  # 替换所有,后面可以加一个控制替换的次数的参数
print('My title title'.rfind('t'))  # 从右边开始找,返回它的索引位置
print('My title title'.split(' '))  # 分割成列表 依据参数,列表组合成string用join
print('My title title'.rsplit('i', 1))  # 分割一次,以右为准。
print('my title title'.title())  # 改成标题格式

# 重要的字符串方法
# print(st.count('l'))
# print(st.center(50, '-'))
# print(st.startswith('he'))
# print(st.find('t'))
# print(st.format(name='isaac', age=22))
# print('MY TITLE'.lower())  # 大写变小写
# print('my name'.upper())  # 小写变大写
# print(' 	  isa ac 
'.strip())  # 去掉前后所有换行符,空格,制表符
# print('My name'.replace('name', 'age'))  # 替换所有,后面可以加一个控制替换的次数的参数
# print('My title title'.split(' '))  # 分割成列表 依据参数,列表组合成string用join

  这里对应了之前的万恶字符串拼接,引入了一个join方法,是一个十分有用的方法。与split可以说是一个对应的关系啦!


原文地址:https://www.cnblogs.com/isaac-hu/p/8490605.html