字典遍历操作
# 字典的遍历操作
info = {'name': 'eric', 'age': 19, 'scores': [66, 77, 88]}
print(list(info.keys()))
print(list(info.values()))
print(list(info.items())) # 同时也是字典转化为列表的方法
# for x in info.items():
# print(x)
for k, v in info.items():
print(f"k = {k} , v = {v}")
# 列表变成字典
ls = [('name', 'eric'), ('age', 19), ('scores', [66, 77, 88])]
print(ls)
print(dict(ls))
# 字典推导式
# {k:v for 临时 in 迭代对象 if 条件}
import string
from random import randint
print(string.ascii_letters)
print([f'Student{i}' for i in string.ascii_letters[26:34]])
scores = {f'Student{i}': randint(10, 100) for i in string.ascii_letters[26:34]}
print(scores)
# 选出成绩大于60分的同学
jige_d = {}
for k, v in scores.items():
if v >= 60:
jige_d[k] = v
print(jige_d)
print({k: v for k, v in scores.items() if v >= 60})
d = {}
print(d)
d['ha'] = 100
d['haa'] = 100
d['haaa'] = 100
print(d)
字符串常用操作方法
# 字符串的常用操作方法
# 1. find 返回字符串首次出现的位置, 不存在返回-1
name = "C++ Java Python"
print(name.find("+"))
print(name.find("J"))
print(name.find("L"))
# 2. strip 去两端空格
name2 = " C++ Java Python "
print(len(name))
print(len(name2))
name2 = name2.strip()
print(len(name2))
# 3. split 字符串变成列表 默认按照空格进行分割
word_ls = name.split(" ")
print(word_ls)
s = '/usr/local/bin/python3.7 /Users/ericli/CLionProjects/jinlou/day11-python/Demo6.py'
print(s.split('/'))
# 4. replace 替换
print(s.replace('/', '\')) #是转义字符 \代表禁止转义
# 5. join 列表变成字符串
ws = ['C++', 'Java', 'Python']
print(" ".join(ws))
print("".join(ws))
print("\".join(ws))
print("/".join(ws))
print("_".join(ws))
print(" ".join([str(i) for i in range(10)]))
词频统计案例
# 读取本地文件
# 统计每个单词出现的次数
# {"Now": 1, 'must':4}
word_d = {}
with open('geci.txt') as f:
data = f.read()
print(data)
print(type(data))
ws = data.split()
print(ws)
for word in ws:
word_d[word] = 0
print(word_d)
for word in ws:
word_d[word] +=1
print(word_d)
# for word in ws:
# word_d[word] = word_d.get(word, 0) + 1
print(word_d)
集合
#集合 set
# 无序, 不重复
s1 = {11, 222, 222, 666, 666, 666, '哈哈'}
print(s1)
print(type(s1))
# print(s1[0]) # TypeError: 'set' object is not subscriptable
## 经常用于去重
from random import randint
data = [randint(0, 3) for i in range(1000)]
print(data)
print(set(data))
# 添加
s1.add('哈哈')
s1.add('xixi')
s1.add('xixi')
print(s1)
# 删除
print(s1.pop())
print(s1.pop())
print(s1)
# 遍历
for x in s1:
print(x)
函数
# 函数是对重复代码的封装
# def 函数名(参数1, 参数2.....):
# pass
# 分类
# 无参无返回值
def hello():
print("Hello !")
# 调用
print(hello())
from random import random
# 无参有返回值
def twoFloat():
return random(), random()
print(twoFloat())
# 有参无返回值
def twoSum(x, y):
print("x + y = ", x+y)
twoSum(10, 20)
# 有参有返回值
def cal(n):
sums = 0
for i in range(1, n+1):
sums+=i
return sums
print(cal(100))
print(cal(10))
print(cal(1))
print(cal(1000))