热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何生成分配给随机数的随机字母列表-Howtogeneratealistofrandomlettersassignedtorandomnumbers

Ineedtocreatealistofrandomcharactersthataregeneratedfromrandomnumbers.Onelistneeds

I need to create a list of random characters that are generated from random numbers. One list needs to be the letters generated from the random numbers, while the other list will get letters that are already in the first list. I have seen the import string method that uses the ascii, but I dont fully understand that. So far I have used the import random method and have been able to generate the random numbers but I feel my code is too long and that there should be an easier way. Each time a random number is generated the program should convert it to a letter and add to a list (called uniqueList) only if the number is not already present in the list. Stop adding the numbers once the list contains 15 characters.

我需要创建一个随机数生成的随机字符列表。一个列表需要是从随机数生成的字母,而另一个列表将获得已在第一个列表中的字母。我见过使用ascii的import string方法,但我不完全理解。到目前为止,我已经使用了导入随机方法,并且能够生成随机数,但我觉得我的代码太长了,应该有一个更简单的方法。每次生成随机数时,程序应将其转换为字母并添加到列表(称为uniqueList),前提是该列表中尚不存在该数字。列表包含15个字符后停止添加数字。

here is a sample of the code I have so far:

这是我到目前为止的代码示例:

uniqueList = []
excludedList = []
count = 0


while (len(uniqueList)<15):

    randomNumber = random.randint(*random.choice([(65,90), (97,122)]))
    print(randomNumber)

    if(randomNumber == 65):
        letter = 'A'
    if(randomNumber == 66):
        letter = 'B'
    if(randomNumber == 67):
        letter = 'C'
    if(randomNumber == 68):
        letter = 'D'
    if(randomNumber == 69):
        letter = 'E'
    if(randomNumber == 70):

you can tell the code is long so i know there has to be a shorter way

你可以告诉代码很长,所以我知道必须有一个更短的方式

3 个解决方案

#1


0  

If you just need a random letter, you can simplify the logic by using random.choice() as:

如果您只需要一个随机字母,可以使用random.choice()简化逻辑:

import string
import random
my_char = string.letters
random.choice(my_char)
# returns 'z'

where string.letters will return string of all letters i.e. 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

其中string.letters将返回所有字母的字符串,即'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'


Below is the modified code based on your logic of code (using random.choice() with random number) as:

下面是基于您的代码逻辑的修改代码(使用带有随机数的random.choice()):

import string
import random
my_char = string.letters
# Value returned by string.letters:
# 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

randomNumber = random.randint(*random.choice([(65,90), (97,122)]))
if randomNumber >=65 and randomNumber <=90:
   print my_char[randomNumber-65]
elif randomNumber >=97 and randomNumber <=122:
   print my_char[randomNumber-97+26]

#2


2  

If you want 15 unique letters in a list you could do the following:

如果您想在列表中添加15个唯一字母,则可以执行以下操作:

import random
import string

letters = [i for i in string.ascii_lowercase]
random_list = random.sample(letters, 15)

print random_list

This would return something along the lines of:

这将返回以下内容:

['m', 's', 'r', 'f', 'x', 'l', 'e', 't', 'd', 'n', 'w', 'u', 'q', 'h', 'i']

#3


0  

As c# knows the unicode values you can use

因为c#知道你可以使用的unicode值

letter=(char)randomNumber;  

although random a number between 97 and 122 as use did will random a lower case letter. If you want to random an uppercase letter like you quoted take a look in the unicode table for upper case unicode values. http://unicode-table.com/en/

虽然随机使用了一个介于97和122之间的数字,但是随机使用小写字母。如果你想像你引用的那样随机输入大写字母,请查看unicode表中的大写unicode值。 http://unicode-table.com/en/


推荐阅读
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 摘要: 在测试数据中,生成中文姓名是一个常见的需求。本文介绍了使用C#编写的随机生成中文姓名的方法,并分享了相关代码。作者欢迎读者提出意见和建议。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 很多时候在注册一些比较重要的帐号,或者使用一些比较重要的接口的时候,需要使用到随机字符串,为了方便,我们设计这个脚本需要注意 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
author-avatar
坐看末日之景L_170
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有