集合 和推倒数据,处理数据

推倒数据,处理数据

例子

体育老师需要检测 4 个学生最好的数据

数据格式如下

One.txt

Mysql

2-34,3:21,2.34,2.45,3.01,3:41,2:01,3:10,2-22

Two.txt

Mysql

2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21

Three.txt

Mysql

2:58,2.58,2:39,2-25,2-55,2:54,2.18,2:55,2:55

Four.txt

Mysql

2:22,3.01,3:01,3.02,3:02,3.02,3:22,2.49,2:38
  • 下面就是统计数据 然后分析数据
Python

# 引入正则模块
import re


def printresult(filename, arr):
    with open(filename, 'r', encoding='utf-8') as result:
        content = result.readlines()
        for item in content:
            splitestr(item, arr)  # arr变化了
        findbetter(arr)  # 最后的结果


def splitestr(item, arr):
    resultall = item.split(',')
    for item in resultall:
        finalresult = ''
        result = re.findall('(\d+)', item)  # 找到数字
        for _item in result:
            finalresult += str(_item)  # 变成字符串
        arr.append(finalresult)

# 比大小


def findbetter(arr):
    maxitem = int(arr[0])
    for i in range(len(arr)):
        if(i < len(arr)-1):
            itemnext = int(arr[i+1])
        else:
            itemnext = int(arr[i])
        if itemnext > maxitem:
            maxitem = itemnext
    result = str(maxitem)
    print("最好的成绩就是"+result[0]+"分"+result[1]+result[2]+"秒")


arr1 = []
printresult('One.txt', arr1)
arr2 = []
printresult('Two.txt', arr2)
arr3 = []
printresult('Three.txt', arr3)
arr4 = []
printresult('Four.txt', arr4)

集合

  • 集合里面不能有重复的值

  • 集合使用{}来表示

  • 通过 set()函数来制造集合

Python

arr = ["1","2","3"]

print (set(arr))

# 结果

# 集合{}

集合内部操作

  • in 判断是否在里面
Python

str = set('abccddadada')
result = 'a' in str
print(result)
  • 添加元素 add
Python

str1 = set('abccddadada')
str1.add('e')
print(str1)

# 结果
# {'a', 'c', 'd', 'e', 'b'}
  • 移除元素 remove (这样元素不存在,则会发生错误)
Python
str1 = set('abccddadada')
str1.add('e')
str1.remove('e')
print(str1)
# 结果
# {'b', 'd', 'a', 'c'}
  • 移除元素 2 discard() (这样即使元素不存在,也不会发生错误)
Python

str1 = set('abccddadada')
str1.discard('a')
print(str1)

# 结果
# {'b', 'd', 'c'}
  • 随机删除一个元素 pop()
Python

str1 = set('abccddadada')
str1.pop()
print(str1)

# 结果随机删除
# {'b', 'd', 'c'}
  • 计算集合的个数
Python

str1 = set('abccddadada')

length = len(str1)

print(length)

# 结果
# 4
  • 清空集合
Python

str1 = set('abccddadada')
str1.clear()
print(str1)

# 结果
# set()
  • 集合复制
Python

str1 = set('abccddadada')
str2 = str1.copy()
print(str2)

# 结果 {'a', 'c', 'b', 'd'}

两个集合之间的操作

  • 取差集 (a 包含而 b 不包含)
Python

str1 = set('abccddadada')
str2 = set('bbbcde')
result = str1-str2
print(result)

# 结果
# {'a'}
  • 取并集 a | b
Python

str1 = set('abccddadada')
str2 = set('bbbcde')
result = str1 | str2
print(result)

# 结果
# {'a','b','c','d','e'}
  • 取交集 a&b
Python

str1 = set('abccddadada')
str2 = set('bbbcde')
result = str1 & str2
print(result)

# 结果
# {'c','b','d'}
  • 不同时包含 a 和 b 的元素(b 中 a 没有的元素,a 中 b 没有的元素)
Python

str1 = set('abccddadada')
str2 = set('bbbcde')
result = str1 ^ str2
print(result)

# 结果
# {'e','a'}

文章作者: 雾烟云
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 雾烟云 !