Python面试遇到的几道面试题

**1.【编码实现】去除一个整数数组中的重复元素,并进行从大到小排序,最后打印出结果。**

参考答案:

```python

def qchong(s):

    list1 = []

    for num in s:

        if num not in list1:

            list1.append(num)

    return sorted(list1, reverse=True)

if __name__ == "__main__":

    s = [12, 16, 15, 18, 26, 18, 17, 16]

    res = qchong(s)

    print(res)

    # out [26, 18, 17, 16, 15, 12]

```

**2.【编码实现】提取如下html结构中的信息。**

```python

<div class="list">

<div class="item">

  <p><label>姓名:</label><span>蔡徐坤</span></p>

  <p><label>类型:</label><span>human</span></p>

  <p><label>年龄:</label><span>24</span></p>

</div>

<div class="item">

  <p><label>姓名:</label><span>伊娃</span></p>

  <p><label>类型:</label><span>机器人</span></p>

  <p><label>生产日期:</label><span>2019-01-01</span></p>

</div>

<div class="item">

  <p><label>姓名:</label><span>豆豆</span></p>

  <p><label>类型:</label><span>动物</span></p>

  <p><label>年龄:</label><span>3</span></p>

</div>

<div class="item">

  <p><label>姓名:</label><span>鹿晗</span></p>

  <p><label>类型:</label><span>人类</span></p>

  <p><label>年龄:</label><span>21</span></p>

</div>

</div>

```

并生成如下数据结构:

{

  'human': [{ age: 24, name: '蔡徐坤' },{ age: 21, name: '鹿晗' }],

  'robot': [{ dateTime: '2019-01-01', name: '伊娃' }],

  'animal': [{ age: 3, name: '豆豆' }],

}

参考答案:

```python

from lxml import etree

if __name__ == "__main__":

content = """

    <div class="list">

<div class="item">

  <p><label>姓名:</label><span>蔡徐坤</span></p>

  <p><label>类型:</label><span>human</span></p>

  <p><label>年龄:</label><span>24</span></p>

</div>

<div class="item">

  <p><label>姓名:</label><span>伊娃</span></p>

  <p><label>类型:</label><span>机器人</span></p>

  <p><label>生产日期:</label><span>2019-01-01</span></p>

</div>

<div class="item">

  <p><label>姓名:</label><span>豆豆</span></p>

  <p><label>类型:</label><span>动物</span></p>

  <p><label>年龄:</label><span>3</span></p>

</div>

<div class="item">

  <p><label>姓名:</label><span>鹿晗</span></p>

  <p><label>类型:</label><span>人类</span></p>

  <p><label>年龄:</label><span>21</span></p>

</div>

</div>

    """

    page = etree.HTML(content)

    items = page.xpath('.//div[@class="item"]')

    all_content = {}

    people = []

    robot = []

    animal = []

    for item in items:

        nr = item.xpath('./p/span/text()')

        if 'human' in nr or '人类' in nr:

            # print(i)

            people.append({'age': nr[2], 'name': nr[0]})

        elif '机器人' in nr:

            robot.append({'dateTime': nr[2], 'name': nr[0]})

        else:

            animal.append({'age': nr[2], 'name': nr[0]})

    all_content['human'] = people

    all_content['robot'] = robot

    all_content['animal'] = animal

    print(all_content)

    out = {'human': [{'age': '24', 'name': '蔡徐坤'}, {'age': '21', 'name': '鹿晗'}],

          'robot': [{'dateTime': '2019-01-01', 'name': '伊娃'}],

          'animal': [{'age': '3', 'name': '豆豆'}]}

```

**3.【编码实现】有如下数组,需要将每个字符串中排列在任意x前面的所有y替换为0,请计算并打印出每个字符串需要被替换的y的个数。**

arr = ['xxyyxyyyyyxxx', 'yxxxx', 'xyyyxxyx', 'xxxx', 'xxxyyy'];

```python

import re

def change_str(listi):

    list_res = []

    pattern = re.compile(r'(y+)x')

    for s in listi:

        res = re.findall(pattern, s)

        list_res.append(len(''.join(res)))

    return list_res

if __name__ == "__main__":

    arr = ['xxyyxyyyyyxxx', 'yxxxxyxy', 'xyyyxxyx', 'xxxx', 'xxxyyy'];

    res = change_str(arr)

    print(res)

    # out = [7, 2, 4, 0, 0]

```

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容