Rumah pembangunan bahagian belakang Tutorial Python python list使用示例 list中找连续的数字

python list使用示例 list中找连续的数字

Jun 06, 2016 am 11:29 AM
list nombor

线上有个需求,格式化,从一堆s1,s100-s199中找出连续的服并且格式化显示出来,如:

神魔:S106-109,s123,s125
御剑: s106-109,s123,s125

代码如下:


#!/usr/bin/env python
# -*- coding: utf-8 -*-
#  2014/01/15 14:15
import sys
from itertools import *
from operator import itemgetter
def parse(filename):
    d = {}
    for line in open(filename, 'r'):
        _line = line.split()
        d.setdefault(_line[0], []).append(_line[1])
    for key in d.keys():
        data = sorted(map(lambda x: int(x[1:]), d[key]))
        sys.stdout.write(key + " ")
        for k, g in groupby(enumerate(data), lambda (i, x): i - x):
            ret = map(itemgetter(1), g)
            if len(ret) > 1:
                sys.stdout.write("S%d-%d," % (ret[0], ret[-1]))
            elif len(ret) == 1:
                sys.stdout.write(str("S%s") % ret[0] + ",")
        sys.stdout.write('\n')
if __name__ == "__main__":
    filename = sys.argv[1]
    parse(filename)

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

iOS 17: Cara menukar gaya jam iPhone dalam mod siap sedia iOS 17: Cara menukar gaya jam iPhone dalam mod siap sedia Sep 10, 2023 pm 09:21 PM

Siap sedia ialah mod skrin kunci yang diaktifkan apabila iPhone dipalamkan ke dalam pengecas dan berorientasikan dalam orientasi mendatar (atau landskap). Ia terdiri daripada tiga skrin berbeza, satu daripadanya dipaparkan masa skrin penuh. Teruskan membaca untuk mengetahui cara menukar gaya jam anda. Skrin ketiga StandBy memaparkan masa dan tarikh dalam pelbagai tema yang boleh anda leret secara menegak. Sesetengah tema juga memaparkan maklumat tambahan, seperti suhu atau penggera seterusnya. Jika anda menahan sebarang jam, anda boleh bertukar antara tema yang berbeza, termasuk Digital, Analog, Dunia, Suria dan Terapung. Terapung memaparkan masa dalam nombor gelembung besar dalam warna yang boleh disesuaikan, Solar mempunyai fon yang lebih standard dengan reka bentuk suar matahari dalam warna yang berbeza, dan Dunia memaparkan dunia dengan menyerlahkan

Hasilkan nombor rawak dan rentetan dalam JavaScript Hasilkan nombor rawak dan rentetan dalam JavaScript Sep 02, 2023 am 08:57 AM

Keupayaan untuk menjana nombor rawak atau rentetan alfanumerik berguna dalam banyak situasi. Anda boleh menggunakannya untuk melahirkan musuh atau makanan di lokasi yang berbeza dalam permainan. Anda juga boleh menggunakannya untuk mencadangkan kata laluan rawak kepada pengguna atau mencipta nama fail untuk menyimpan fail. Saya menulis tutorial tentang cara menjana rentetan alfanumerik rawak dalam PHP. Saya berkata pada permulaan siaran ini bahawa beberapa peristiwa benar-benar rawak, dan perkara yang sama berlaku untuk nombor rawak atau penjanaan rentetan. Dalam tutorial ini, saya akan menunjukkan kepada anda cara menjana rentetan alfanumerik pseudo-rawak dalam JavaScript. Menjana Nombor Rawak dalam JavaScript Mari mulakan dengan menjana nombor rawak. Kaedah pertama yang terlintas di fikiran ialah Math.random(), yang mengembalikan apungan

Program C++ untuk membundarkan nombor kepada n tempat perpuluhan Program C++ untuk membundarkan nombor kepada n tempat perpuluhan Sep 12, 2023 pm 05:13 PM

Mewakili nombor sebagai output adalah tugas yang menarik dan penting apabila menulis program dalam mana-mana bahasa. Untuk jenis integer (data jenis pendek, panjang atau sederhana), mudah untuk mewakili nombor sebagai output. Untuk nombor titik terapung (jenis terapung atau berganda), kadangkala kita perlu membundarkannya kepada nombor tempat perpuluhan tertentu. Sebagai contoh, jika kita ingin mewakili 52.24568 sebagai tiga tempat perpuluhan, beberapa prapemprosesan diperlukan. Dalam artikel ini, kami akan memperkenalkan beberapa teknik untuk mewakili nombor titik terapung kepada nombor tempat perpuluhan tertentu dengan membundarkan. Antara pendekatan yang berbeza, adalah penting untuk menggunakan rentetan format seperti C, menggunakan hujah ketepatan dan menggunakan fungsi round() daripada perpustakaan matematik. Mari kita lihat mereka satu persatu. dengan

Cari nombor yang tidak boleh dibahagikan dengan mana-mana nombor dalam julat, menggunakan C++ Cari nombor yang tidak boleh dibahagikan dengan mana-mana nombor dalam julat, menggunakan C++ Sep 13, 2023 pm 09:21 PM

Dalam artikel ini, kita akan membincangkan masalah mencari nombor antara 1 dan n (diberi) yang tidak boleh dibahagikan dengan sebarang nombor antara 2 dan 10. Mari kita fahami ini dengan beberapa contoh - Input:num=14Output:3Penjelasan:Terdapat tiga nombor,1,11,dan13,yang tidak boleh dibahagikan.Input:num=21Output:5Penjelasan:Terdapat nombor1,11,13,17,dan19,yang tidak boleh dibahagi jika

Gunakan C++ untuk menulis kod untuk mencari nombor bukan persegi Nth Gunakan C++ untuk menulis kod untuk mencari nombor bukan persegi Nth Aug 30, 2023 pm 10:41 PM

Kita semua tahu nombor yang bukan kuasa dua mana-mana nombor, seperti 2, 3, 5, 7, 8, dll. Terdapat N nombor bukan persegi, dan adalah mustahil untuk mengetahui setiap nombor. Jadi, dalam artikel ini, kami akan menerangkan segala-galanya tentang nombor tanpa kuasa dua atau bukan kuasa dua dan cara untuk mencari nombor bukan kuasa dua N dalam C++. Nombor bukan kuasa dua ken Jika nombor ialah kuasa dua integer, maka nombor itu dipanggil kuasa dua sempurna. Beberapa contoh nombor kuasa dua sempurna ialah -1isquareof14issquareof29issquareof316issquareof425issquareof5 Jika nombor bukan kuasa dua mana-mana integer, maka nombor itu dipanggil bukan kuasa dua. Sebagai contoh, 15 nombor bukan kuasa dua yang pertama ialah -2,3,5,6,

Nombor dalam Java (dengan 0 awalan dan rentetan) Nombor dalam Java (dengan 0 awalan dan rentetan) Aug 29, 2023 pm 01:45 PM

Nombor dalam Java Adalah penting untuk memahami bahawa kelas nombor bukanlah kelas nyata tetapi kelas abstrak. Di dalamnya, kami mempunyai satu set kelas pembalut yang mentakrifkan fungsinya. Kelas pembalut ini termasuk Integer, Byte, Double, Short, Float dan Long. Anda mungkin perasan bahawa ini adalah jenis data asas yang sama yang kita bincangkan sebelum ini, tetapi ia diwakili sebagai kelas berasingan dengan nama huruf besar untuk mematuhi konvensyen penamaan kelas. Pengkompil secara automatik menukar jenis data primitif kepada objek dan sebaliknya seperti yang diperlukan untuk fungsi atau skop program tertentu, dan kelas berangka adalah sebahagian daripada pakej java.lang. Proses ini dipanggil autoboxing dan unboxing. Dengan memahami sifat abstrak kelas angka dan kelas pembalut yang sepadan, kita boleh

Mewakili nombor sebagai jumlah bilangan nombor perdana terbesar yang mungkin dalam C++ Mewakili nombor sebagai jumlah bilangan nombor perdana terbesar yang mungkin dalam C++ Aug 31, 2023 pm 04:29 PM

Bincangkan masalah, sebagai contoh, diberi nombor N, kita perlu membahagikan nombor itu kepada nombor perdana maksimumnya, kita boleh menolak nombor perdana daripada N dan kemudian menyemak perbezaan nombor perdana. Jika perbezaannya ialah nombor perdana, maka kita boleh menyatakan N sebagai hasil tambah dua nombor perdana. Tetapi di sini kita perlu

Program Java untuk memeriksa sama ada nombor boleh dibahagikan dengan 5 Program Java untuk memeriksa sama ada nombor boleh dibahagikan dengan 5 Sep 13, 2023 pm 09:01 PM

Dalam matematik, peraturan pembahagian 5 menyatakan bahawa jika nombor berakhir dengan 0 atau 5, ia boleh dibahagi dengan 5. Terdapat satu lagi cara untuk menentukan peraturan pembahagian 5, jika bakinya ialah 0, kemudian kembalikan nombor yang boleh dibahagikan dengan 5. Pengendali mod(%) biasanya digunakan dalam pengaturcaraan untuk pembahagian integer. Mari kita beri contoh. Nombor yang diberikan ialah 525, nombor itu berakhir dengan 5 dan boleh dibahagi dengan 5. Nombor yang diberikan ialah 7050 yang berakhir dengan 0 dan boleh dibahagi dengan 5. Nombor yang diberikan ialah 678 yang tidak berakhir dengan 0 dan 5 dan tidak boleh dibahagikan dengan 5. Dalam artikel ini, kami akan menyelesaikan persoalan sama ada nombor itu boleh dibahagi dengan 5. Algoritma Langkah berikut ialah kami akan menggunakan pakej java.util.* untuk mendapatkan input pengguna bagi jenis data primitif. daripada kelas utama

See all articles