'''
一维数据：由对等关系的有序或无序数据构成，采用线性方式组织
          3.1413， 3.1398， 3.1404， 3.1401， 3.1349， 3.1376
          对应列表、数组和集合等概念

二维数据：由多个一维数据构成，是一维数据的组合形式
          - 表格是典型的二维数据
          - 表头是二维数据的一部分

多维数据：由一维或二维数据在新维度上扩展形成，如时间

高维数据：仅利用最基本的二元关系展示数据间的复杂结构，如字典(键值对)


数据操作周期：存储 <-> 表示 <-> 操作    
              数据存储，数据表示，数据操作
              存储格式，数据类型，操作方式



一维数据的表示
如果数据间有序：使用列表
  - ls = [3.1398, 3.1349, 3.1376]
  - 列表类型可以表达一维有序数据
  - for 循环可以遍历数据，进而对每个数据进行处理

如果数据间无序：使用集合类型
  - st = {3.1398, 3.1349, 3.1376}
  - 集合类型可以表达一维无序数据
  - for 循环可以遍历数据，进而对每个数据进行处理



一维数据的存储
存储方式一：空格分隔
  - 中国 美国 日本 德国 法国 英国
  - 使用一个或多个空格分隔进行存储，不换行
  - 缺点：数据中不能存在空格

存储方式二：逗号分隔
  - 中国,美国,日本,德国,法国,英国
  - 使用英文半角逗号分隔数据进行存储，不换行
  - 缺点：数据中不能存在英文逗号

存储方式三：其他方式
  - 中国$美国$日本$德国$法国$英国
  - 使用其他符号或符号组合分隔，建议采用特殊符号
  - 缺点：需要根据数据特点定义，通用性较差


数据的处理    存储 <-> 表示 
  - 将存储的数据读入程序
  - 将程序表示的数据写入文件
'''


# 一维数据的读入处理
# 从空格分隔的文件中读入数据
# 中国 美国 日本 德国 法国 英国
f = open('f1.txt')
text = f.read()
ls = text.split()      # 根据空格分隔字符串信息，默认值是空格
print(ls)
f.close()


# 从特殊符号分隔的文件中读入数据
# 中国$美国$日本$德国$法国$英国
f = open('f2.txt')
text = f.read()
ls = text.split("$")
print(ls)
f.close()


# 采用空格分隔方式将数据写入文件
ls = ['中国','美国','日本']
f = open('f3.txt','w')
f.write(" ".join(ls))   # join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
f.close()

# 采用特殊分隔方式将数据写入文件
ls = ['中国','美国','日本']
f = open('f4.txt','w')
f.write("$".join(ls))   
f.close()