📜 简介
这是一个使用 Python 编写的脚本,旨在生成独特、具有美感的、适合女性使用的英文昵称,尤其适用于 Telegram 等社交平台。它利用了精心挑选的、庞大的词汇库(形容词、名词、名字、Emoji),通过多种模式组合,创造出丰富多样的结果。
脚本的核心优势在于其可配置性和低重复率。您可以轻松调整 Emoji 的出现概率、位置、数量,以及昵称的组合方式,并能生成大量几乎不重复的昵称列表,最终保存到文本文件中,方便您挑选和使用。
✨ 主要功能
- ✅ 庞大且多样化的词库: 包含大量精选的形容词、女性化名词、可爱英文名以及风格匹配的 Emoji。
- ✅ 低重复率: 利用 Python
set结构的特性,确保最终输出的昵称列表是独一无二的,即使生成成千上万个也能有效去重。 - ✅ 可配置的 Emoji 集成:
- 出现概率: 可自由设定昵称中包含 Emoji 的大致百分比(默认为 50% 左右)。
- 出现位置: Emoji 可以随机出现在昵称的开头或末尾。
- 出现数量: 可精确控制每次添加 Emoji 的数量(默认为 1 到 2 个)。
- ✅ 多样的昵称结构: 随机组合词汇,如
形容词+名词,形容词+名字,名字+名词, 单独名字, 单独名词等模式。 - ✅ 灵活的格式: 单词间连接方式多样,包括空格、无空格(驼峰命名法),以及小概率使用
_,-等符号。 - ✅ 可选的独特性增强: 有极小概率在昵称末尾添加数字后缀,进一步降低重复的可能性。
- ✅ 文件输出: 将所有生成的唯一昵称保存到一个
.txt文件中,方便查阅和复制。 - ✅ 进度提示: 在生成大量昵称时,会显示进度信息,包括已生成数量和当前的 Emoji 占比。
🐍 环境要求与依赖
- 环境: Python 3.x (脚本在 Python 3.6 及以上版本测试通过)。
- 依赖: 此脚本仅使用了 Python 的标准库 (
random,time,string)。- 无需额外安装: 您不需要使用
pip或其他包管理器来安装任何第三方库。只要您的 Python 环境是正常的,就可以直接运行。
- 无需额外安装: 您不需要使用
🚀 如何使用
- 保存代码: 将下面的 完整代码 复制并保存为一个
.py文件(例如:nickname_generator.py)。 - 打开终端: 打开您的命令行终端(Windows 下的 Command Prompt 或 PowerShell,macOS/Linux 下的 Terminal)。
- 切换目录: 使用
cd命令切换到您保存nickname_generator.py文件的目录。 (请将cd /path/to/your/script/directory/path/to/your/script/directory替换为实际路径) - 运行脚本: 使用 Python 解释器执行脚本。
python nickname_generator.py - 输入数量: 脚本会提示您输入想要生成的 唯一 昵称数量。输入一个正整数(例如
5000或10000),然后按 Enter 键。 - 等待生成: 脚本将开始生成昵称,并根据设置的报告间隔显示进度。生成大量昵称可能需要一些时间,请耐心等待。
- 查看结果: 脚本执行完毕后,会在当前目录下生成一个文本文件(默认名为
generated_nicknames_final.txt),其中包含了所有不重复的昵称,每行一个。
⚙️ 参数配置指南
您可以非常方便地通过直接修改脚本 (.py 文件) 内的参数来定制生成器的行为。以下是关键的可配置项(请在下面的完整代码中找到对应位置进行修改):
1. Emoji 出现概率
- 参数说明: 控制生成的昵称中,大约有多大比例(0.0 到 1.0 之间)会包含 Emoji。例如,
0.5表示约 50% 的昵称带 Emoji。 - 修改位置: 在脚本主执行部分 (
if __name__ == "__main__":块内) 的while循环中,找到调用generate_single_nickname函数的那一行。修改emoji_probability的值。
2. Emoji 数量
- 参数说明: 当一个昵称确定要添加 Emoji 时,具体添加多少个 Emoji。
- 修改位置: 在
generate_single_nickname函数内部,找到确定 Emoji 数量 (num_emojis = random.randint(1, 2)) 的那一行。
3. Emoji 位置
- 参数说明: 控制 Emoji 是出现在昵称的开头(前缀)还是末尾(后缀)。
- 修改位置: 在
generate_single_nickname函数内部,选择并组合好 Emoji (emoji_str) 之后,决定最终昵称 (final_nickname) 结构的if random.random() < 0.5:语句块。修改0.5这个概率值。
4. 输出文件名
- 参数说明: 指定保存生成的昵称列表的文本文件的名称。
- 修改位置: 在脚本主执行部分 (
if __name__ == "__main__":块内) 靠近开头的位置,修改output_filename变量的值。
5. 单词连接符风格与概率
- 参数说明: 控制昵称中单词(如形容词和名词)之间的连接方式(空格、无空格/驼峰式、或
_,-等符号)及其出现概率。 - 修改位置: 在
generate_single_nickname函数内部,确定separator变量值的那一行(使用了random.choices),修改weights列表中的概率分布。
6. 数字后缀概率
- 参数说明: 控制在昵称末尾添加随机数字(1-99)以增加独特性的概率(默认为 2%)。
- 修改位置: 在
generate_single_nickname函数的末尾,if random.random() < 0.02:这一行,修改0.02这个概率值。
✏️ 自定义词库
昵称生成的核心素材来源于脚本顶部定义的几个 Python 列表:
adjectives(形容词列表)nouns_female(女性化名词列表)names_short_cute(可爱英文名列表)emojis_cute_sparkly(Emoji 列表)
您可以非常自由地修改这些列表:
- 添加: 在方括号
[...]内,按照格式(英文引号包裹,逗号分隔)添加新的词语或 Emoji 字符串。 - 删除: 直接删除列表中您不喜欢的任何条目。
- 注意事项: 确保每个添加的条目都用英文引号
""包裹,并且条目之间用英文逗号,分隔(列表最后一个条目后面可以省略逗号)。
重要提示: 修改完代码后,请务必保存 .py 文件,然后重新运行脚本才能使更改生效。
📄 输出结果
脚本成功运行后,会在其所在的目录下生成一个纯文本文件(默认是 generated_nicknames_final.txt)。文件内容是所有生成的、独一无二的昵称,每行一个,可以直接复制使用。
输出文件内容示例:
SparklingRose✨
🌙MoonbeamDreamer
SweetLilyPetal
GentleWhisper_7
FloraBloom
🌸CrystalDove
SunnySkye
... 以及成百上千更多 ...
📄 许可
您可以自由使用、修改和分发此脚本。如果方便,署名表示感谢,但非强制要求。
💻 完整代码
import random
import time
import string # 虽然string库在这里没直接用于复杂组合,但它是标准库
# --- !! 大幅扩展后的数据列表 !! ---
# 形容词
adjectives = list(set([
"Sweet", "Lovely", "Sparkling", "Glittery", "Dreamy", "Sunny", "Happy",
"Gentle", "Kind", "Bright", "Radiant", "Shining", "Blossom", "Cotton",
"Silken", "Velvet", "Honey", "Golden", "Silver", "Crystal", "Cosmic",
"Mystic", "Little", "Tiny", "Angel", "Fairy", "Rosy", "Peachy", "Azure",
"Crimson", "Emerald", "Lavender", "Lilac", "Minty", "Pastel", "Plush",
"Serene", "Starlight", "Sugar", "Twilight", "Whispering", "Zephyr",
"Celestial", "Ethereal", "Glimmering", "Iridescent", "Luminous", "Melodic",
"Opalescent", "Petite", "Pristine", "Sapphire", "Velvety", "Amber", "Aqua",
"Arctic", "Autumn", "Balmy", "Beaming", "Beloved", "Blessed", "Blissful",
"Blooming", "Blue", "Bonny", "Bouncy", "Breezy", "Candy", "Carefree",
"Charming", "Cherished", "Cherry", "Chic", "Cinnamon", "Cloudy", "Coastal",
"Coral", "Cozy", "Creamy", "Crisp", "Crystalline", "Cuddly", "Dainty",
"Dancing", "Daring", "Darling", "Dazzling", "Dear", "Deep", "Delicate",
"Delightful", "Dewy", "Diamond", "Divine", "Dove", "Ebony", "Echoing",
"Ecstatic", "Electric", "Elegant", "Elfin", "Enchanted", "Endearing",
"Eternal", "Exotic", "Exquisite", "Fabled", "Faint", "Fancy", "Fantastic",
"Feathered", "Feathery", "Festive", "Fiery", "Flawless", "Fleecy", "Floating",
"Floral", "Fluffy", "Fluttering", "Foamy", "Forest", "Fragrant", "Fresh",
"Friendly", "Frilly", "Frosty", "Frozen", "Fuzzy", "Gala", "Garnet", "Gentle",
"Gilded", "Ginger", "Glacial", "Glamorous", "Gleaming", "Glistening", "Glossy",
"Glowing", "Gold", "Graceful", "Gracious", "Grand", "Grape", "Grass", "Green",
"Groovy", "Halcyon", "Harmonious", "Heavenly", "Honest", "Hopeful", "Humble",
"Hushed", "Icy", "Ideal", "Idyllic", "Illustrious", "Immaculate", "Incandescent",
"Indigo", "Infinite", "Innocent", "Inspiring", "Ivory", "Jade", "Jaunty",
"Jazzy", "Jolly", "Joyful", "Joyous", "Jubilant", "Juicy", "Keen", "Kindly",
"Lacy", "Lagoon", "Lake", "Laughing", "Laurel", "Lemon", "Light", "Lime",
"Limpid", "Lively", "Loyal", "Lucky", "Luscious", "Lush", "Lustrous", "Magic",
"Magnetic", "Magnificent", "Majestic", "Maple", "Marble", "Marine", "Marvelous",
"Mauve", "Meadow", "Mellow", "Melting", "Merry", "Metallic", "Midnight",
"Milky", "Mirrored", "Misty", "Modest", "Moonbeam", "Moonlit", "Morning",
"Mossy", "Mountain", "Musical", "Muted", "Mythic", "Naive", "Natural", "Neat",
"Nectar", "Nice", "Nimble", "Noble", "Nocturnal", "Northern", "Nostalgic",
"Nouveau", "Oaken", "Oceanic", "Olive", "Onyx", "Opal", "Orange", "Orchid",
"Organic", "Ornamental", "Pacific", "Painted", "Paradise", "Patient", "Peaceful",
"Pearly", "Peppermint", "Perfect", "Perky", "Persistent", "Pink", "Pious",
"Placid", "Platinum", "Playful", "Pleasant", "Plucky", "Plump", "Polished",
"Poppy", "Positive", "Precious", "Pretty", "Primal", "Princely", "Prosperous",
"Proud", "Pure", "Purple", "Quaint", "Queenly", "Quick", "Quiet", "Quirky",
"Rainbow", "Rapid", "Rare", "Raspberry", "Regal", "Relaxed", "Resonant",
"Resplendent", "Rich", "Rippling", "Ritzy", "River", "Robin", "Rolling",
"Romantic", "Rose", "Royal", "Ruby", "Rustic", "Sacred", "Saffron", "Sage",
"Sandy", "Sanguine", "Sapphire", "Sassy", "Satin", "Savvy", "Scarlet", "Scented",
"Seafoam", "Secret", "Sensitive", "Sequined", "Shadowy", "Shimmering", "Shiny",
"Silent", "Silky", "Simple", "Singing", "Sky", "Sleek", "Sleepy", "Slender",
"Slight", "Smiling", "Smooth", "Snappy", "Snowy", "Snug", "Soaring", "Sociable",
"Soft", "Solar", "Solemn", "Solitary", "Soothing", "Sophisticated", "Sorbet",
"Soulful", "Southern", "Spicy", "Spirited", "Splendid", "Sprightly", "Spring",
"Spun", "Starry", "Steadfast", "Steady", "Still", "Strawberry", "Striped",
"Strong", "Stylish", "Suave", "Sublime", "Subtle", "Sugarplum", "Summer",
"Sunlit", "Supreme", "Surreal", "Swanky", "Swift", "Sylvan", "Sympathetic",
"Taffy", "Talkative", "Tall", "Tame", "Tan", "Tangerine", "Tasteful", "Tasty",
"Tender", "Thankful", "Thistle", "Thoughtful", "Thrilling", "Tidal", "Timber",
"Timeless", "Topaz", "Tranquil", "Treasured", "Tropical", "True", "Trusting",
"Trusty", "Turquoise", "Ultraviolet", "Uncommon", "Unique", "Untamed", "Unusual",
"Upbeat", "Urban", "Valiant", "Vanilla", "Vast", "Verdant", "Vibrant", "Victorious",
"Vigilant", "Violet", "Virtuous", "Vital", "Vivacious", "Vivid", "Warm", "Wavy",
"Wee", "Western", "Whimsical", "Whirling", "White", "Whole", "Wild", "Willing",
"Willow", "Windy", "Winged", "Winning", "Winter", "Wiry", "Wise", "Wistful",
"Witty", "Wonderful", "Wondrous", "Wooden", "Woolly", "Worldly", "Worthy",
"Woven", "Yellow", "Young", "Youthful", "Yummy", "Zany", "Zesty", "Zingy"
]))
# 名词 (女性化)
nouns_female = list(set([
"Rose", "Lily", "Daisy", "Petal", "Blossom", "Flora", "Star", "Moon",
"Sunbeam", "Cloud", "Sky", "Ocean", "Pearl", "Gem", "Jewel", "Melody",
"Harmony", "Serenity", "Dream", "Glow", "Sparkle", "Angel", "Fae", "Pixie",
"Sprite", "Muse", "Echo", "Whisper", "Kitten", "Bunny", "Dove", "Swan",
"Butterfly", "Cupcake", "Cookie", "Berry", "Peach", "Aurora", "Belle",
"Bloom", "Bubble", "Charm", "Dewdrop", "Feather", "Flame", "Frost",
"Gardenia", "Glimmer", "Grace", "Haven", "Hazel", "Heart", "Ivy", "Lace",
"Lagoon", "Lark", "Light", "Lotus", "Lullaby", "Maple", "Meadow", "Mist",
"Nectar", "Orchid", "Pebble", "Poem", "Poppy", "Rain", "Ribbon", "Rune",
"Secret", "Shadow", "Silk", "Snowflake", "Songbird", "Sorbet", "Spirit",
"Spring", "Stream", "Summer", "Thistle", "Tulip", "Willow", "Wisp", "Wonder",
"Acorn", "Albatross", "Alchemy", "Alley", "Almond", "Amber", "Amethyst",
"Amulet", "Anchor", "Anthem", "Apple", "Apricot", "Aqua", "Arcade", "Arch",
"Aroma", "Arrow", "Art", "Ash", "Aster", "Atlas", "Auburn", "Autumn", "Avenue",
"Ballad", "Ballet", "Bamboo", "Banner", "Bangle", "Bay", "Beach", "Beacon",
"Bead", "Beam", "Beauty", "Bee", "Bell", "Beret", "Birch", "Bird", "Bliss",
"Bluebell", "Blush", "Bonbon", "Bonsai", "Book", "Bouquet", "Bow", "Bracelet",
"Branch", "Breeze", "Briar", "Bridge", "Brook", "Brooch", "Bubblegum", "Bud",
"Buttercup", "Cabana", "Cactus", "Cadence", "Calla", "Cameo", "Camellia",
"Canary", "Candle", "Candy", "Cane", "Canvas", "Canyon", "Cape", "Caramel",
"Carnation", "Carousel", "Cascade", "Cashmere", "Castle", "Catalina", "Catkin",
"Cauldron", "Cave", "Cedar", "Celeste", "Chalice", "Chant", "Chapel", "Charisma",
"Cherry", "Chime", "Chocolate", "Chorus", "Chrysalis", "Cider", "Cinnamon",
"Citrine", "Citrus", "Clarity", "Clay", "Clef", "Cliff", "Clock", "Clover",
"Coast", "Cobalt", "Cobweb", "Cocoa", "Cocoon", "Coffee", "Coin", "Colibri",
"Comet", "Compass", "Conch", "Confetti", "Coral", "Cosmos", "Cottage", "Cove",
"Creek", "Crescent", "Crest", "Cricket", "Crown", "Cruise", "Crypt", "Cub",
"Curio", "Curl", "Current", "Cyan", "Cypress", "Daffodil", "Dahlia", "Dawn",
"Daydream", "Delta", "Desert", "Destiny", "Diamond", "Diary", "Dimple", "Ditty",
"Dolphin", "Domino", "Dragonfly", "Droplet", "Drum", "Dune", "Dusk", "Dust",
"Eagle", "Earth", "Ebony", "Eclipse", "Elegance", "Elixir", "Elm", "Ember",
"Emerald", "Enigma", "Epiphany", "Era", "Essence", "Estate", "Estuary", "Eternity",
"Evening", "Fable", "Fairy", "Falcon", "Fantasy", "Fawn", "Fern", "Festival",
"Fiddle", "Field", "Fig", "Filigree", "Finch", "Firefly", "Fir", "Flax", "Fleur",
"Flint", "Flock", "Flute", "Fog", "Folio", "Folly", "Font", "Forest", "Fortune",
"Fossil", "Fountain", "Fox", "Foxglove", "Fragment", "Frankincense", "Fresco",
"Frill", "Fringe", "Fuchsia", "Fur", "Gala", "Galaxy", "Gale", "Gallop", "Garden",
"Garland", "Garnet", "Gazebo", "Geode", "Geranium", "Geyser", "Ghost", "Gift",
"Ginger", "Glacier", "Glade", "Glass", "Glee", "Glen", "Globe", "Gnome", "Gold",
"Goldfinch", "Gossamer", "Grail", "Grain", "Granite", "Grape", "Grass", "Gratitude",
"Gravity", "Gremlin", "Griffin", "Grove", "Guitar", "Gulf", "Gull", "Gumdrop",
"Gypsy", "Hail", "Halo", "Hamlet", "Hammock", "Harbor", "Harp", "Harvest", "Haze",
"Heather", "Hedge", "Heirloom", "Helix", "Hemlock", "Herb", "Heron", "Hideaway",
"Highland", "Hill", "Hint", "Holly", "Home", "Honesty", "Honeycomb", "Honeysuckle",
"Hope", "Horizon", "Horn", "Hourglass", "Hummingbird", "Hurricane", "Hush",
"Hyacinth", "Hydrangea", "Hymn", "Ice", "Icon", "Idol", "Idyll", "Illusion",
"Image", "Incense", "Indigo", "Infinity", "Ingot", "Ink", "Inlet", "Inspiration",
"Interlude", "Iris", "Island", "Isle", "Ivory", "Jasmine", "Jasper", "Jellybean",
"Jet", "Journey", "Joy", "Jubilee", "Julep", "Jungle", "Juniper", "Karma",
"Kestrel", "Key", "Keystone", "Kindness", "Kingdom", "Kiss", "Kite", "Kiwi",
"Knight", "Knot", "Labyrinth", "Ladybug", "Lake", "Lamp", "Lantern", "Lapis",
"Larch", "Laurel", "Leaf", "Leap", "Legend", "Lemon", "Lens", "Leopard", "Letter",
"Liberty", "Lichen", "Lighthouse", "Lilac", "Lime", "Locket", "Locust", "Lodge",
"Log", "Loom", "Lore", "Love", "Loyalty", "Luck", "Lumber", "Lumin", "Lute",
"Lynx", "Lyre", "Lyric", "Macaroon", "Madrigal", "Magenta", "Magic", "Magma",
"Magnolia", "Magpie", "Mahogany", "Maiden", "Maize", "Mallow", "Mandarin",
"Mandolin", "Mandrake", "Mansion", "Mantra", "Manuscript", "Marble", "Marigold",
"Marina", "Marionette", "Market", "Marmalade", "Marsh", "Marshmallow", "Marvel",
"Mask", "Masquerade", "Mast", "Mead", "Medal", "Medallion", "Melon", "Memento",
"Memory", "Meridian", "Mermaid", "Mesa", "Message", "Metal", "Meteor", "Mica",
"Microcosm", "Midnight", "Milk", "Mill", "Mimosa", "Minaret", "Mineral", "Mint",
"Minuet", "Miracle", "Mirage", "Mirror", "Mirth", "Moccasin", "Mocha", "Mole",
"Moment", "Monarch", "Monastery", "Monocle", "Monsoon", "Monster", "Monument",
"Moonstone", "Moor", "Morass", "Morning", "Mosaic", "Moss", "Moth", "Motion",
"Motto", "Mountain", "Mouse", "Mousse", "Mulberry", "Mural", "Murmur", "Mushroom",
"Music", "Myrrh", "Myrtle", "Mystery", "Myth", "Naiad", "Nap", "Narcissus",
"Nature", "Nautilus", "Navigator", "Nebula", "Needle", "Nest", "Nettle", "Night",
"Nightingale", "Nimbus", "Nocturne", "Nomad", "Nook", "Noon", "Nostalgia", "Note",
"Novel", "Nugget", "Nutmeg", "Nymph", "Oasis", "Oath", "Oatmeal", "Obsidian",
"Ocelot", "Octave", "Ode", "Odyssey", "Olive", "Omen", "Onyx", "Opal", "Opera",
"Oracle", "Orange", "Orbit", "Origami", "Oriole", "Ornament", "Osprey", "Otter",
"Ovation", "Owl", "Oyster", "Page", "Pagoda", "Paint", "Palace", "Palette", "Palm",
"Pampas", "Panda", "Panorama", "Pansy", "Panther", "Papaya", "Paper", "Papyrus",
"Parable", "Parade", "Paradise", "Paradox", "Parchment", "Park", "Parody", "Parrot",
"Parsley", "Passion", "Pastel", "Pastry", "Patch", "Path", "Patience", "Patina",
"Patio", "Pattern", "Pause", "Peace", "Peak", "Pecan", "Pegasus", "Pendant",
"Pendulum", "Pen", "Penny", "Peony", "Pepper", "Peppermint", "Perfume", "Peridot",
"Periwinkle", "Persimmon", "Petunia", "Pewter", "Phantom", "Phial", "Philter",
"Phoenix", "Phrase", "Piano", "Piazza", "Picture", "Pier", "Pilgrim", "Pillow",
"Pilot", "Pine", "Pineapple", "Pinnacle", "Pinwheel", "Pioneer", "Pipe", "Pirate",
"Pistachio", "Pixy", "Placard", "Plain", "Planet", "Plank", "Plant", "Plaster",
"Plateau", "Plaza", "Pleasure", "Plum", "Plume", "Pocket", "Poetry", "Poise",
"Polaris", "Pollen", "Pond", "Pony", "Pool", "Poplar", "Porcelain", "Porch",
"Portal", "Portrait", "Posy", "Potion", "Pottery", "Prairie", "Prayer", "Prelude",
"Presence", "Present", "Pride", "Primrose", "Prince", "Princess", "Prism", "Prize",
"Prodigy", "Promise", "Prophecy", "Prospect", "Proverb", "Psalm", "Pulse", "Puma",
"Pumpkin", "Pup", "Puppet", "Puzzle", "Pyramid", "Quail", "Quarry", "Quartz",
"Quasar", "Queen", "Quest", "Quill", "Quilt", "Quince", "Quiver", "Quote",
"Rabbit", "Racer", "Radian", "Radius", "Raft", "Rainbow", "Ram", "Ranch", "Rapid",
"Raven", "Ray", "Realm", "Rebel", "Recipe", "Recital", "Record", "Redwood", "Reed",
"Reef", "Reflection", "Refrain", "Regalia", "Reign", "Relic", "Remedy", "Rendezvous",
"Requiem", "Reserve", "Resin", "Resort", "Rest", "Retreat", "Reverie", "Reward",
"Rhapsody", "Rhythm", "Riddle", "Ridge", "Rime", "Ring", "Ripple", "Rite", "Ritual",
"River", "Rivulet", "Road", "Robin", "Rock", "Rocket", "Romance", "Roof", "Root",
"Rope", "Rosary", "Rosebud", "Rosemary", "Rouge", "Round", "Rowan", "Royal", "Rubric",
"Rudder", "Rumble", "Rumor", "Runaway", "Rune", "Rush", "Rustle", "Saber", "Sable",
"Sacrament", "Saddle", "Saga", "Sage", "Sail", "Salad", "Salamander", "Salmon",
"Salon", "Salt", "Salute", "Sanctuary", "Sandalwood", "Sand", "Sandpiper", "Sapphire",
"Satin", "Savanna", "Scale", "Scallop", "Scarab", "Scarf", "Scent", "Scepter",
"Scheme", "Scholar", "Schooner", "Science", "Scimitar", "Scoop", "Score", "Scout",
"Scrapbook", "Screen", "Scribe", "Scroll", "Sculpture", "Scythe", "Sea", "Seagull",
"Seal", "Seam", "Seashell", "Season", "Seaweed", "Seed", "Seer", "Semaphore",
"Senorita", "Sensation", "Sentiment", "Sentinel", "Sepal", "Sepia", "Sequin",
"Sequoi", "Sermon", "Serpent", "Serum", "Serval", "Session", "Shade", "Shaft",
"Shamrock", "Shard", "Shawl", "Sheen", "Shell", "Shelter", "Sherbet", "Shield",
"Shift", "Ship", "Shoal", "Shore", "Shrine", "Shroud", "Shuttle", "Sigh", "Sign",
"Signal", "Signet", "Silhouette", "Silver", "Simplicity", "Siren", "Sketch", "Skipper",
"Slate", "Sleet", "Sleigh", "Slice", "Slipper", "Slope", "Smile", "Smoke", "Snack",
"Snapdragon", "Snare", "Snow", "Snowdrop", "Snuggle", "Soap", "Solace", "Solarium",
"Soldier", "Solitaire", "Solitude", "Solstice", "Sonata", "Sonnet", "Soot", "Soprano",
"Sorcery", "Sorrow", "Soul", "Sound", "Souvenir", "Spa", "Space", "Spade", "Spaniel",
"Sparrow", "Spear", "Speck", "Spectacle", "Specter", "Spectrum", "Spell", "Sphere",
"Sphinx", "Spice", "Spider", "Spike", "Spindle", "Spine", "Spiral", "Spire", "Splash",
"Splendor", "Spool", "Spoon", "Spore", "Spot", "Spray", "Spruce", "Spur", "Spyglass",
"Squadron", "Square", "Squid", "Squirrel", "Stable", "Stack", "Staff", "Stag", "Stage",
"Stain", "Stair", "Stalactite", "Stalagmite", "Stallion", "Stamen", "Stamp", "Stanza",
"Staple", "Starfish", "Stardust", "Statue", "Steed", "Steel", "Steeple", "Stem",
"Stencil", "Step", "Stereo", "Sterling", "Steward", "Stick", "Stigma", "Stiletto",
"Stirrup", "Stitch", "Stocking", "Stone", "Stool", "Stoop", "Story", "Stove", "Stowaway",
"Strait", "Strand", "Strap", "Stratagem", "Straw", "Strawberry", "Streak", "Street",
"Strength", "Strip", "Stroll", "Structure", "Stucco", "Studio", "Study", "Style",
"Stylet", "Stylus", "Sugar", "Suit", "Suite", "Sultan", "Summit", "Sun", "Sundae",
"Sundial", "Sunflower", "Sunrise", "Sunset", "Sunshine", "Surf", "Surprise", "Swallow",
"Swamp", "Swarm", "Sway", "Sweater", "Sweetpea", "Swift", "Sword", "Sycamore", "Syllable",
"Symbol", "Symmetry", "Symphony", "Synonym", "Syrup", "System", "Tablet", "Taffeta",
"Tale", "Talisman", "Tambourine", "Tangle", "Tango", "Tankard", "Tapestry", "Tarot",
"Tassel", "Tattoo", "Tavern", "Tea", "Teacup", "Tear", "Technique", "Teddy", "Telescope",
"Temple", "Tempo", "Temptation", "Tenacity", "Tendril", "Tent", "Tenor", "Terrace",
"Terrain", "Terrier", "Testament", "Texture", "Thatch", "Thaw", "Theater", "Theme",
"Theory", "Thermos", "Thesaurus", "Thicket", "Thimble", "Thorn", "Thought", "Thread",
"Throne", "Thrush", "Thunder", "Thyme", "Tiara", "Ticket", "Tide", "Tiger", "Tile",
"Timber", "Time", "Tincture", "Tinsel", "Tip", "Toast", "Token", "Tome", "Tone",
"Tonic", "Topaz", "Topic", "Torch", "Tornado", "Torrent", "Torso", "Tortoise", "Totem",
"Touch", "Tour", "Tournament", "Tower", "Town", "Toy", "Trace", "Track", "Tract", "Trade",
"Tradition", "Trail", "Train", "Trait", "Trance", "Tranquility", "Trap", "Traveler",
"Treasure", "Treatise", "Treaty", "Tree", "Trefoil", "Trellis", "Tremor", "Trend",
"Tress", "Trial", "Triangle", "Tribe", "Tribute", "Trick", "Trident", "Trifle",
"Trill", "Trillium", "Trinket", "Trio", "Trip", "Triumph", "Troll", "Trophy", "Tropic",
"Trout", "Trove", "Truce", "Trumpet", "Trunk", "Trust", "Truth", "Tuber", "Tugboat",
"Tulle", "Tundra", "Tune", "Tunic", "Tunnel", "Turban", "Turf", "Turnip", "Turquoise",
"Turret", "Turtle", "Tusk", "Tutu", "Tweed", "Twig", "Twine", "Twinkle", "Twirl",
"Twist", "Typhoon", "Umbrella", "Undertow", "Uniform", "Union", "Unity", "Universe",
"Urchin", "Urn", "Vale", "Valise", "Valley", "Valor", "Vampire", "Vanilla", "Vanity",
"Vapor", "Variety", "Varnish", "Vase", "Vassal", "Vault", "Vector", "Veil", "Vein",
"Velour", "Velvet", "Veneer", "Venture", "Veranda", "Verbena", "Verse", "Vessel", "Vest",
"Vestige", "Vetch", "Vial", "Vibe", "Vicar", "Victory", "View", "Vigil", "Villa",
"Village", "Vine", "Vinegar", "Vineyard", "Vintage", "Viola", "Violet", "Violin",
"Viper", "Virago", "Virtue", "Visa", "Visage", "Vision", "Visitor", "Vista", "Vitality",
"Vixen", "Voice", "Void", "Volcano", "Volume", "Vortex", "Vow", "Voyage", "Voyager",
"Waffle", "Wagon", "Waif", "Wake", "Walk", "Wall", "Wallet", "Walnut", "Waltz", "Wand",
"Wanderer", "Warbler", "Warmth", "Warning", "Warp", "Warrior", "Wasp", "Watch", "Water",
"Waterfall", "Waterlily", "Wave", "Wax", "Way", "Wealth", "Weapon", "Weasel", "Weather",
"Weave", "Web", "Wedding", "Wedge", "Weed", "Weekend", "Weight", "Well", "Wetland",
"Whale", "Wheat", "Wheel", "Whelp", "Whiff", "Whim", "Whirl", "Whirlpool", "Whirlwind",
"Whisk", "Whisper", "Whistle", "Wicker", "Widget", "Wigwam", "Wilderness", "Wildfire",
"Will", "Wind", "Windchime", "Window", "Wine", "Wing", "Wink", "Winner", "Winter",
"Wire", "Wish", "Wisteria", "Witch", "Wit", "Wizard", "Wolf", "Woman", "Wood", "Woodbine",
"Woodland", "Woodpecker", "Wool", "Word", "Work", "World", "Worm", "Worry", "Worship",
"Wreath", "Wren", "Writer", "Xylophone", "Yacht", "Yard", "Yarn", "Yarrow", "Year",
"Yearning", "Yeast", "Yellow", "Yew", "Yoga", "Yogurt", "Yoke", "Yolk", "Youth", "Yule",
"Zebra", "Zenith", "Zephyr", "Zest", "Zigzag", "Zinc", "Zinnia", "Zither", "Zodiac",
"Zone", "Zoo"
]))
# 名字 (可爱简称)
names_short_cute = list(set([
"Lily", "Mia", "Ella", "Luna", "Chloe", "Zoe", "Ava", "Sophie", "Grace",
"Ruby", "Skye", "Jade", "Rose", "Belle", "Faye", "Hope", "Joy", "Lucy",
"Nora", "Ivy", "Aria", "Maya", "Anna", "Emma", "Isla", "Olivia", "Sophia",
"Alice", "Clara", "Cora", "Eliza", "Flora", "Freya", "Gemma", "Hazel",
"Iris", "Layla", "Leah", "Mila", "Nina", "Paige", "Quinn", "Stella",
"Thea", "Violet", "Willa", "Zara", "Daisy", "Poppy", "Ruby", "Willow",
"Abby", "Ada", "Addie", "Aimee", "Aisha", "Alana", "Alexa", "Ali", "Alia",
"Alma", "Amber", "Amelia", "Amy", "Ana", "Anika", "Anya", "April", "Ariel",
"Ashley", "Asia", "Aspen", "Astrid", "Audrey", "Autumn", "Ayla", "Bea",
"Becky", "Bella", "Beth", "Betty", "Bianca", "Blair", "Blake", "Bliss",
"Blossom", "Blythe", "Bonnie", "Bree", "Briar", "Bridie", "Brin", "Brooke",
"Brynn", "Calla", "Callie", "Cara", "Carly", "Carmen", "Carol", "Cassie",
"Cate", "Cece", "Celeste", "Celia", "Chana", "Chara", "Charli", "Cher",
"Cherry", "Cleo", "Coco", "Colby", "Connie", "Coral", "Court", "Dana",
"Daphne", "Darcy", "Darla", "Dawn", "Debby", "Della", "Demi", "Devon",
"Diana", "Dina", "Dixie", "Dolly", "Dora", "Doris", "Eden", "Edie", "Edith",
"Effie", "Eila", "Eira", "Elaina", "Elana", "Elda", "Eleni", "Elfie", "Elina",
"Elise", "Elka", "Elke", "Elle", "Ellen", "Ellie", "Elma", "Elodie", "Eloise",
"Elsa", "Elsie", "Elva", "Ember", "Emery", "Emilia", "Emmy", "Enid", "Enya",
"Erica", "Erika", "Erin", "Eska", "Esme", "Espen", "Estee", "Esther", "Etta",
"Eula", "Eunie", "Eva", "Evie", "Faith", "Fanny", "Farah", "Flora", "Fran",
"Gail", "Gayle", "Gena", "Gia", "Gigi", "Gilda", "Gina", "Ginny", "Gita",
"Gwen", "Halle", "Hanna", "Harley", "Harlow", "Hattie", "Haven", "Heidi",
"Helen", "Helga", "Hera", "Holly", "Honey", "Ida", "Ilana", "Ilsa", "Immy",
"Ina", "Indie", "Inez", "Inga", "Ingrid", "Iona", "Ira", "Irene", "Irina",
"Irma", "Isa", "Isha", "Ivory", "Jacqui", "Jada", "Jamie", "Jana", "Jane",
"Janel", "Janet", "Janice", "Janie", "Jessa", "Jessie", "Jill", "Jinny",
"Joan", "Jodi", "Joelle", "Joey", "Jojo", "Jolie", "Joni", "Josie", "Journey",
"Jovie", "Joyce", "Judith", "Judy", "Julia", "Julie", "Juliet", "June", "Juni",
"Juno", "Justi", "Kaia", "Kara", "Karen", "Karis", "Karla", "Karly", "Kasey",
"Kasia", "Kate", "Kathy", "Katie", "Katya", "Kay", "Kaya", "Kayla", "Keira",
"Kelly", "Kelsey", "Kendra", "Kenzie", "Keri", "Kesha", "Kia", "Kiana", "Kiara",
"Kiki", "Kim", "Kira", "Kirsten", "Kit", "Kitty", "Kyla", "Kylie", "Kyra",
"Lacey", "Laila", "Lana", "Lara", "Larisa", "Laura", "Laurel", "Lauren", "Lea",
"Leena", "Leesa", "Leia", "Leila", "Lena", "Leona", "Leonie", "Lesley", "Lexa",
"Lexi", "Lia", "Liana", "Libby", "Lida", "Lila", "Lilac", "Lilia", "Lilla",
"Lindy", "Linnea", "Lisa", "Lisbet", "Lise", "Liv", "Livia", "Liz", "Liza",
"Lizzie", "Lois", "Lola", "Lolita", "Lora", "Lori", "Lorna", "Lotus", "Lou",
"Louisa", "Luann", "Luca", "Lucia", "Lucie", "Luella", "Lula", "Lulu", "Lyda",
"Lydia", "Lynda", "Lynn", "Lyra", "Lyssa", "Mabel", "Maddie", "Mae", "Maeve",
"Magda", "Maggie", "Maia", "Maida", "Maisy", "Malia", "Malka", "Mandy", "Mara",
"Marci", "Marcy", "Maren", "Margo", "Maria", "Marie", "Marin", "Maris", "Marla",
"Marlee", "Marlie", "Marni", "Marta", "Martha", "Mary", "Matty", "Maude", "Maura",
"Mavis", "Maxie", "May", "Megan", "Mel", "Melba", "Melia", "Meline", "Melody",
"Mena", "Mercy", "Meryl", "Meta", "Mika", "Mikki", "Milly", "Mimi", "Mina",
"Mindy", "Minna", "Minnie", "Mira", "Miri", "Miriam", "Misty", "Mitzi", "Miya",
"Moira", "Molly", "Mona", "Monica", "Mora", "Morgan", "Moxie", "Mya", "Myra",
"Myrna", "Myrtle", "Nada", "Nadia", "Nadine", "Nan", "Nancy", "Naomi", "Nara",
"Nastia", "Nat", "Nell", "Nellie", "Nena", "Nessa", "Nettie", "Nev", "Neva",
"Nia", "Nic", "Nicky", "Nicola", "Nicole", "Nika", "Niki", "Nikki", "Nila",
"Noa", "Noel", "Nola", "Nolia", "Nona", "Noni", "Norma", "Nova", "Nyla", "Oda",
"Odell", "Odette", "Ola", "Olena", "Olga", "Olive", "Ollie", "Ona", "Opal",
"Opra", "Ora", "Orla", "Orly", "Orsa", "Osla", "Otta", "Ozzy", "Palma",
"Paloma", "Pam", "Pammy", "Pansy", "Paula", "Pauley", "Paulie", "Paz", "Peggy",
"Penny", "Pepa", "Pepper", "Peri", "Perla", "Perry", "Petra", "Petula", "Peyton",
"Phil", "Phoebe", "Phylo", "Pia", "Pilar", "Piper", "Pippa", "Pippi", "Pixie",
"Polly", "Portia", "Posy", "Presley", "Prima", "Prissy", "Priya", "Prue", "Pru",
"Psyche", "Queeni", "Rae", "Raia", "Raina", "Raisa", "Ramona", "Rana", "Randi",
"Rani", "Raquel", "Raven", "Raya", "Reba", "Ree", "Reese", "Regan", "Regina",
"Reina", "Remi", "Rena", "Renata", "Rene", "Renee", "Reyna", "Rhea", "Rhian",
"Rhoda", "Rhona", "Ria", "Riana", "Ricci", "Ricky", "Rikki", "Riley", "Rina",
"Risa", "Rita", "Riva", "Riya", "Roanne", "Robbie", "Robyn", "Rocio", "Roise",
"Romy", "Rona", "Ronda", "Ronia", "Rory", "Rosa", "Rosie", "Rowan", "Rowen",
"Roxie", "Roz", "Rue", "Ruth", "Ruthie", "Rylee", "Saba", "Sabina", "Sabra",
"Sacha", "Sadie", "Saffron", "Sage", "Saige", "Sal", "Sally", "Salma", "Salome",
"Sam", "Sammy", "Sandra", "Sandy", "Sansa", "Sappho", "Sara", "Sari", "Sasha",
"Saskia", "Savvy", "Scarlet", "Seana", "Season", "Selah", "Selby", "Selena",
"Selma", "Seren", "Shana", "Shandy", "Shani", "Shanna", "Shari", "Sharla",
"Sharon", "Shawna", "Shay", "Shayla", "Shea", "Sheba", "Sheena", "Sheila",
"Shelby", "Shelly", "Sheri", "Sherry", "Shifra", "Shiloh", "Shira", "Shiri",
"Shirly", "Sibyl", "Sidney", "Sierra", "Signe", "Silka", "Silvie", "Simmy",
"Simone", "Sindy", "Siobhan", "Siri", "Sissy", "Sita", "Sloane", "Snow", "Sol",
"Solana", "Solveig", "Sondra", "Sonia", "Sonja", "Sonny", "Sonya", "Sorcha",
"Stacey", "Stacy", "Star", "Starla", "Stef", "Stormy", "Sue", "Sugar", "Suki",
"Summer", "Sunny", "Susan", "Susie", "Suzie", "Svenja", "Svetla", "Sybil", "Syd",
"Sylvie", "Tabby", "Tahli", "Talia", "Tali", "Tam", "Tamar", "Tamika", "Tammy",
"Tamsin", "Tana", "Tania", "Tansy", "Tara", "Taryn", "Tasha", "Tati", "Tatum",
"Tawny", "Taya", "Tea", "Teagan", "Tecla", "Teddy", "Teena", "Teila", "Tempie",
"Terra", "Terry", "Tess", "Tessa", "Tessie", "Thalia", "Thelma", "Thera", "Tia",
"Tiana", "Tiara", "Tiera", "Tiffany", "Tilda", "Tilly", "Tina", "Tindra", "Tisha",
"Tobi", "Toni", "Tonya", "Topaz", "Tori", "Tosca", "Tova", "Tove", "Tracey",
"Traci", "Tracy", "Tress", "Tricia", "Trina", "Trish", "Trisha", "Trista", "Trudy",
"Truly", "Twyla", "Tyra", "Ula", "Ulla", "Ulrica", "Uma", "Una", "Unity", "Ursa",
"Ursula", "Val", "Valka", "Vana", "Vanda", "Vanna", "Vanya", "Veda", "Velda",
"Velma", "Vera", "Verna", "Vesta", "Vicki", "Vicky", "Vida", "Vina", "Vinca",
"Viola", "Vita", "Viva", "Vivi", "Vivian", "Wanda", "Wendy", "Whitney", "Winnie",
"Xandra", "Xara", "Xavia", "Xena", "Xenia", "Xia", "Xyla", "Yana", "Yara", "Yari",
"Yasmin", "Yelena", "Yesenia", "Yetta", "Ynes", "Yoko", "Yoli", "Yona", "Yonna",
"Ysabel", "Yula", "Yuri", "Yvette", "Yvonne", "Zada", "Zaida", "Zaina", "Zana",
"Zandra", "Zanna", "Zaria", "Zelda", "Zelia", "Zella", "Zelma", "Zena", "Zera",
"Zeta", "Zia", "Zilla", "Zina", "Zita", "Ziva", "Zola", "Zora", "Zula", "Zuri"
]))
# Emoji (可爱闪亮风格)
emojis_cute_sparkly = list(set([
# Flowers & Plants
"🌸", "🌹", "🌷", "🌻", "🌼", "🌺", "💮", "🏵️", "💐", "☘️", "🍀", "🌱", "🌿",
"🪴", "🌲", "🌳", "🌴", "🌵", "🌾", "🍁", "🍂", "🍄", "🎋", "🎍",
# Sparkles, Stars, Moon, Sun
"✨", "💖", "💫", "🌟", "⭐", "🌠", "❇️", "✴️", "🎇", "🎆", "☀️", "🌙", "🌕",
"🌖", "🌗", "🌘", "🌑", "🌒", "🌓", "🌔", "🌛", "🌜", "🌝", "🌞", "🪐",
# Hearts (various colors)
"❤️", "🧡", "💛", "💚", "💙", "💜", "🖤", "🤍", "🤎", "🩷", "💔", "❤️🔥", "❤️🩹",
"💕", "💞", "💓", "💗", "💖", "💘", "💝", "💟", "🫶",
# Nature & Weather
"☁️", "⛅", "⛈️", "🌤️", "🌥️", "🌦️", "🌧️", "🌨️", "🌩️", "🌪️", "🌫️", "🌬️",
"🌈", "🌊", "💧", "💦", "🫧", "☔", "☂️", "⛱️", "🔥", "🌋", "⛰️", "🏔️",
"🏞️", "🏝️", "🏜️", "🏖️", "🌅", "🌄", "🏞",
# Cute Animals & Mythical Creatures
"🦋", "🦄", "🐇", "🐈", "🐈⬛", "🐕", "🐩", "🕊️", "🦢", "🦊", "🐞", "🐬",
"🐳", "🐠", "🐡", "🐙", "🐚", "🐌", "🐝", "🐜", "🦗", "🕷️", "🐢", "🐍",
"🦎", "🦖", "🦕", "🐅", "🐆", "🦓", "🦍", "🦧", "🐘", "🦛", "🦏", "🐪",
"🐫", "🦒", "🦘", "🐃", "🐂", "🐄", "🐎", "🐖", "🐏", "🐑", "🐐", "🦌",
"🐕", "🐒", " rodents", "🐁", "🐀", "🐿️", "🦫", "🦔", "🦇", "🐻", "🐨",
"🐼", "🦥", "🦦", "🦨", "🦡", "🦃", "🐔", "🐓", "🐣", "🐤", "🐥", "🐦",
"🐧", "🦅", "🦉", "🦜", "🦢", "🦩", "🦚", "🦜", "🧚♀️", "🧜♀️", "🧞♀️", "👼",
"🐉", "🐲",
# Food & Drink (Cute ones)
"🍓", "🍒", "🍑", "🍉", "🍇", "🍊", "🍋", "🍌", "🍍", "🥭", "🍎", "🍏", "🍐",
"🥝", "🥥", "🥑", "🍦", "🍧", "🍨", "🍩", "🍪", "🎂", "🍰", "🧁", "🥧", "🍫",
"🍬", "🍭", "🍮", "🍯", "🍼", "🥛", "☕", "🍵", "🫖", "🥤", "🧋", "🧃", "🧉",
"🧊", "🥢", "🥡", "🥐", "🥨", "🥞", "🧇",
# Objects, Symbols, Activities
"🎀", "💎", "👑", "💍", "👑", "💄", "💋", "💅", "🤳", "👑", "👒", "🎩", "🎓",
"⛑️", "🪖", "👗", "👘", "🥻", "🩱", "🩲", "🩳", "👙", "👚", "👛", "👜",
"👝", "🎒", "👞", "👟", "👠", "👡", "👢", "🩰", "🧵", "🪡", "🧶", "🪢",
"👓", "🕶️", "🥽", "🥼", "🦺", "👔", "👕", "👖", "🧣", "🧤", "🧥", "🧦",
"🎶", "🎵", "🎼", "🎤", "🎧", "🎷", "🎺", "🎸", "🪕", "🎻", "🥁", "🎹",
"🎨", "🎭", "🎬", "🎪", "🎟️", "🎫", "🎖️", "🏆", "🏅", "🥇", "🥈", "🥉",
"⚽", "🏀", "🏈", "⚾", "🥎", "🎾", "🏐", "🏉", "🎱", "🏓", "🏸", "🏒",
"🏑", "🥍", "🏏", "🥅", "⛳", "🏹", "🎣", "🤿", "🥊", "🥋", "⛸️", "🎿",
"🛷", " Curling Stone", "🎯", "🪁", "🔮", "🪄", "🧿", "🎮", "🕹️", "🎰", "🎲",
"🧩", "🧸", "🪅", "🪆", "🖼️", "🖌️", "🖍️", "✒️", "🖋️", "🖊️", "✏️", "📝",
"✉️", "💌", "📮", "📪", "📫", "📬", "📭", "📦", "🏷️", "📄", "📃", " L",
"📅", "📆", "🗓️", "📈", "📉", "📊", "📋", "📌", "📍", "📎", "🖇️", "📏",
"📐", "✂️", "🗃️", "🗄️", "🗑️", "🔒", "🔓", "🔏", "🔐", "🔑", "🗝️", "🔨",
"🪓", "⛏️", "⚒️", "🛠️", "🗡️", "⚔️", "🔫", "💣", "🏹", "🛡️", "🔧", "🔩",
"⚙️", "🗜️", "⚖️", "🔗", "⛓️", "🪝", "🦯", "🩸", "🩹", "🩺", "💊", "💉",
"🧬", "🔬", "🔭", "📡", "🛰️", "🧭", "🗺️", "🗾", "🌍", "🌎", "🌏", "🌐",
"🏺", "⚱️", "🪞", "🪟", "🪣", "🪤", "🪒", "🧴", "🧷", "🧹", "🧺", "🧻",
"🧼", "🪥", "🧽", "🕯️", "💡", "🔦", "🏮", "🪔", "🎐",
# Misc Cute
"☺️", "😊", "😇", "🥰", "😍", "🤩", "😘", "😗", "😚", "😙", "😋", "😛", "😜",
"🤪", "😝", "🤗", "🤭", "🤫", "🤔", "🥳", "🥹", "🥱", "🤏", "🫶", "🧚", "🧜",
"🧞", "☮️", "✝️", "☪️", "🕉️", "☸️", "✡️", "🔯", "🕎", "☯️", "☦️", "🛐",
"⛎", "♈", "♉", "♊", "♋", "♌", "♍", "♎", "♏", "♐", "♑", "♒", "♓",
"⚛️", "🉑", "☢️", "☣️", "📴", "📳", "🈶", "🈚", "🈸", "🈺", "🈷️", "✴️",
"🆚", "💮", "🉐", "㊙️", "㊗️", "🈴", "🈵", "🈹", "🈲", "🅰️", "🅱️", "🆎",
"🆑", "🅾️", "🆘", "⛔", "📛", "🚫", "❌", "⭕", "💢", "♨️", "❓", "❔",
"❕", "❗", "〰️", "〽️", "⚠️", "🚸", "🔱", "⚜️", "🔰", "♻️", "✅", "🈯",
"💹", "❇️", "✳️", "❎", "🌐", "Ⓜ️", "🈂️", "🛂", "🛃", "🛄", "🛅"
]))
# 可选的后缀 (连接符或结尾数字用)
optional_suffixes = ["", "_", "-", ".", "~"] # 空字符串代表无特殊连接符
optional_numbers = ["", str(random.randint(1, 99))] # 用于小概率添加的数字后缀
# --- 生成逻辑 ---
def generate_single_nickname(emoji_probability=0.5):
"""
生成一个潜在的昵称字符串, 控制Emoji概率和位置。
Args:
emoji_probability (float): 添加Emoji的概率 (0到1之间)。
Returns:
str: 生成的昵称。
"""
# 1. 选择基础昵称结构模式 (不含emoji)
patterns = [
"adj_noun", "adj_noun", "adj_noun", # 增加常见模式权重
"adj_name", "adj_name",
"name_noun", "name_noun",
"name",
"noun"
]
chosen_pattern = random.choice(patterns)
base_nickname = ""
adj = random.choice(adjectives)
noun = random.choice(nouns_female)
name = random.choice(names_short_cute)
# 2. 随机选择连接方式 (空格, 无空格CamelCase, 或小概率其他符号)
# *** 配置点 5: 修改这里的 weights 调整连接符概率 ***
separator = random.choices([" ", "", random.choice(optional_suffixes)], weights=[60, 35, 5], k=1)[0]
if separator in optional_suffixes and separator == "": separator = "" # 如果随机到空后缀,视为无连接符
# 3. 构建基础昵称 (纯文本部分)
if chosen_pattern == "adj_noun":
if separator == "": base_nickname = f"{adj}{noun[0].upper()}{noun[1:]}" # CamelCase
else: base_nickname = f"{adj}{separator}{noun}"
elif chosen_pattern == "adj_name":
base_nickname = f"{adj} {name}" # 名字通常空格连接
elif chosen_pattern == "name_noun":
if separator == "": base_nickname = f"{name}{noun[0].upper()}{noun[1:]}" # CamelCase
else: base_nickname = f"{name}{separator}{noun}"
elif chosen_pattern == "name": base_nickname = name
elif chosen_pattern == "noun": base_nickname = noun
# 4. 清理和标准化基础昵称
base_nickname = base_nickname.strip().replace("..", ".").replace("__", "_").replace("--", "-").replace("~~", "~") # 移除多余符号
if base_nickname and base_nickname[0].isalpha():
base_nickname = base_nickname[0].upper() + base_nickname[1:] # 首字母大写
# 尝试修正驼峰式第二个词的首字母大写
if separator == "" and chosen_pattern in ["adj_noun", "name_noun"]:
potential_second_word_start = -1
if chosen_pattern == "adj_noun": potential_second_word_start = len(adj)
elif chosen_pattern == "name_noun": potential_second_word_start = len(name)
if potential_second_word_start > 0 and potential_second_word_start < len(base_nickname):
# 确保索引有效且该位置是字母
if base_nickname[potential_second_word_start].isalpha():
base_nickname = base_nickname[:potential_second_word_start] + base_nickname[potential_second_word_start].upper() + base_nickname[potential_second_word_start+1:]
# --- Emoji 添加逻辑 ---
final_nickname = base_nickname # 默认没有emoji
# 5. 决定是否添加 Emoji (根据概率)
# *** 配置点 1: emoji_probability 在函数调用时传入 ***
if random.random() < emoji_probability:
# 6. 选择 1 或 2 个 Emoji
# *** 配置点 2: 修改这里的 randint 参数调整 Emoji 数量范围 ***
num_emojis = random.randint(1, 2)
# 确保不重复选择 (如果emoji列表足够大)
chosen_emojis = random.sample(emojis_cute_sparkly, min(num_emojis, len(emojis_cute_sparkly)))
emoji_str = "".join(chosen_emojis)
# 7. 决定 Emoji 位置 (随机前缀或后缀)
# *** 配置点 3: 修改这里的 < 0.5 调整前后缀概率 ***
if random.random() < 0.5:
final_nickname = emoji_str + base_nickname # Emoji 在前
else:
final_nickname = base_nickname + emoji_str # Emoji 在后
# 8. (极小概率) 添加数字后缀 (对最终结果添加)
# *** 配置点 6: 修改这里的 < 0.02 调整数字后缀概率 ***
if random.random() < 0.02:
num_suffix = random.choice(optional_numbers[1:]) # 只选带数字的
# 避免数字直接跟在 emoji 后面,视觉效果不好,可以加个空格或下划线
emoji_chars = "".join(emojis_cute_sparkly) # 创建一个包含所有emoji的字符串方便检查
if final_nickname and final_nickname[-1] in emoji_chars: # 检查最后一个字符是否是列表中的emoji
final_nickname += random.choice(["_", " "]) + num_suffix # 加分隔符
else:
final_nickname += num_suffix # 直接加数字
return final_nickname
# --- 主程序执行 ---
if __name__ == "__main__":
print("--- 大批量可爱女生英文昵称生成器 (TG适用 | 可配置Emoji) ---")
while True:
try:
target_count = int(input("请输入想要生成的唯一昵称数量 (例如: 10000): "))
if target_count > 0: break
else: print("请输入一个大于0的数字。")
except ValueError: print("输入无效,请输入一个数字。")
# *** 配置点 4: 修改这里的文件名 ***
output_filename = "generated_nicknames_final.txt"
unique_nicknames = set()
start_time = time.time()
attempts = 0
# 根据目标数量调整最大尝试次数,防止因词库耗尽或碰撞过多导致死循环
max_attempts = max(target_count * 15, target_count + 100000) # 保底增加10万次尝试
print(f"\n正在生成 {target_count} 个唯一昵称...")
last_report_count = 0
# 动态调整进度报告的间隔,避免刷屏或间隔太久
report_interval = max(500, target_count // 20) # 每生成总数的5%或至少500个时报告一次
emoji_count = 0 # 追踪带emoji的昵称数量
while len(unique_nicknames) < target_count and attempts < max_attempts:
# *** 配置点 1: 在这里传入 Emoji 概率 ***
nickname = generate_single_nickname(emoji_probability=0.5) # 50% 概率带 Emoji
# 检查是否包含 Emoji (用于统计)
# 注意:这个检查方法对于复杂或罕见Emoji可能不完全精确,但对常用Emoji有效
contains_emoji = any(char in emojis_cute_sparkly for char in nickname)
prev_size = len(unique_nicknames) # 记录添加前的大小
unique_nicknames.add(nickname)
# 如果成功添加了新的、不重复的昵称,并且它包含emoji,则计数
if len(unique_nicknames) > prev_size and contains_emoji:
emoji_count += 1
attempts += 1 # 增加尝试次数
# 进度报告
current_count = len(unique_nicknames)
if current_count >= last_report_count + report_interval:
elapsed_time = time.time() - start_time
current_emoji_percentage = (emoji_count / current_count * 100) if current_count > 0 else 0
print(f"已生成 {current_count} / {target_count} 个唯一昵称... "
f"(尝试次数: {attempts}, Emoji占比: {current_emoji_percentage:.1f}%, 耗时: {elapsed_time:.2f} 秒)")
last_report_count = current_count # 更新上次报告时的数量
# 安全退出机制
if attempts >= max_attempts:
print(f"\n警告:已达到最大尝试次数 ({max_attempts}),可能无法生成足够的唯一昵称。")
print(f"当前已生成 {len(unique_nicknames)} 个。")
break # 退出循环
# 生成结束
end_time = time.time()
total_time = end_time - start_time
final_emoji_percentage = (emoji_count / len(unique_nicknames) * 100) if unique_nicknames else 0
print("-" * 40)
if len(unique_nicknames) >= target_count:
print(f"成功生成 {len(unique_nicknames)} 个唯一昵称!")
else:
print(f"生成结束,共获得 {len(unique_nicknames)} 个唯一昵称 (目标 {target_count})。")
print(f"最终 Emoji 占比: {final_emoji_percentage:.1f}% ({emoji_count} 个)")
print(f"总耗时: {total_time:.2f} 秒")
print(f"总尝试次数: {attempts}")
print(f"结果已保存到文件: {output_filename}")
print("-" * 40)
# 将结果写入文件
try:
# 使用 'w' 模式,每次运行会覆盖旧文件
# 使用 utf-8 编码确保能正确写入包含Emoji的字符
with open(output_filename, 'w', encoding='utf-8') as f:
# 直接写入 set 中的内容,无需排序,效率更高
for name in unique_nicknames:
f.write(name + '\n') # 每个昵称占一行
print("文件写入成功!")
except IOError as e:
print(f"错误:无法写入文件 {output_filename}。原因: {e}")