首页 > 代码库 > 【Python3】04、内置数据结构

【Python3】04、内置数据结构



1、把字符串形式的整数或浮点数转化为int或float, 不适用int和float函数

In [57]: str1 = "2468.1357"

In [58]: d1 = {"0":0, "1":1, "2":2, "3":3, "4":4, "5":5, "6":6, "7":7, "8":8, "
    ...: 9":9}
    
In [59]: int1, float1 = str1.split(".")

In [60]: sum1 = 0

In [61]: sum2 = 0

In [62]: for k, v in enumerate(int1):
    ...:     sum1 += d1[v] * 10 ** (len(int1) - k - 1)
    ...: for i, j in enumerate(float1):
    ...:     sum2 += d1[j] * 10 ** (-(i + 1))
    ...: print(sum1 + sum2)
    ...: 
2468.1357

#看到同学给的思路

2、移除一个列表中的重复元素,并保持列表原来的顺序

In [33]: l1 = [1, 3, 5, 7, "a", 7, 3, 1, "a", "b", "ab"]

In [34]: l2 = []

In [35]: for i in l1:
    ...:     if i not in l2:
    ...:         l2.append(i)
    ...: print(l2)
    ...: 
[1, 3, 5, 7, ‘a‘, ‘b‘, ‘ab‘]

3、统计文本中各单词出现的次数

In [170]: str1 = ‘‘‘Hello world  I like Python i like python too he he python i
     ...:  i world‘‘‘

In [171]: l1 = str1.split()

In [172]: j = 1

In [173]: d1 = {}

In [174]: for x in l1:
     ...:     if x not in d1:
     ...:         d1[x] = j
     ...:     else:
     ...:         d1[x] += 1
     ...: print(d1)
     ...: for k in d1:
     ...:     print("The {} count: {}".format(k, d1[k]))
     ...:     
{‘i‘: 3, ‘Python‘: 1, ‘I‘: 1, ‘too‘: 1, ‘python‘: 2, ‘like‘: 2, ‘Hello‘: 1, ‘he‘: 2, ‘world‘: 2}
The i count: 3
The Python count: 1
The I count: 1
The too count: 1
The python count: 2
The like count: 2
The Hello count: 1
The he count: 2
The world count: 2

#文本的话,现在还没学到io,不知道是不是用字符串代替;还有就是单词的顺序保证不了,不知道有什么好方法

4、把1~4000 之间的任意整数转化为罗马数字

罗马数字是阿拉伯数字传入之前使用的一种数码。罗马数字采用七个罗马字母作数字:

Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。

记数的方法:

  1.    相同的数字连写,所表示的数等于这些数字相加得到的数,如 Ⅲ=3;

  2.    小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如 Ⅷ=8、Ⅻ=12;

  3.    小的数字(限于 Ⅰ、X 和 C)在大的数字的左边,所表示的数等于大数减小数得到的数,如 Ⅳ=4、Ⅸ=9;

  4.    在一个数的上面画一条横线,表示这个数增值 1,000 倍,如技术分享 =5000。

  5. d1 = {‘1‘:‘I‘, ‘5‘:‘V‘, ‘10‘:‘X‘, ‘50‘:‘L‘, ‘100‘:‘C‘, ‘500‘:‘D‘}
    #没有思路,,,,



【Python3】04、内置数据结构