我有一大堆数据,有两个列表,包括日期和时间,如下所示:
日期:年 - 月 - 日
时间:小时:分钟:秒
所以我把它们appart并将每个放入一个单独的列表中:
year,month,day = [i.split("-")[0] for i in date], [i.split("-")[1] for i in date], [i.split("-")[2] for i in date]
hour,minute,second = [i.split(":")[0] for i in time], [i.split(":")[1] for i in time], [i.split(":")[2] for i in time]
Run Code Online (Sandbox Code Playgroud)
现在我因为每个都是相同长度的长列表,我想将它们转换为一个包含它们作为datetime对象的列表.所以我使用了另一个列表理解:
datetime_column = [datetime.datetime(int(y),int(m),int(d),int(h),int(m),int(s)) for y,m,d,h,m,s in year,month,day,hour,minute,second]
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)
我知道这是因为它试图在每个列表中迭代y,m,d,h,m和s而不是将它们配对,例如y与年份,m与月份等等.所以这是我的问题:
如何使用6个变量的列表理解,每个变量分别通过6个独立列表中的1个?如果不可能,那么做同等效果的有效方法是什么?
我有一个函数,它接受两个输入,并将返回一个元组数组,其中给定元组中的两个数字与给予函数的两个数字具有完全相同的比率!
所以一切都运行良好,但出于某种原因,在某些情况下,它并没有取得每个元组.这是一个例子,我不知道为什么:
In [52]: def find_r(num1,num2):
....: ratio = num1/float(num2)
....: ratio = 1/ratio
....: my_list = [(a,int(a * ratio)) for a in range(1,num1) if float(a * ratio).is_integer()] #and a * 1/float(ratio) + a <= num1]
....: return my_list
....:
In [53]: find_r(100,364)
Out[53]: [(75, 273)]
Run Code Online (Sandbox Code Playgroud)
所以它只返回一个元组,但如果你将75和273除以3,你会得到一个25和91的元组,它们具有相同的比例!为什么我的函数没有拿起这个实例?
如果它有帮助,我怀疑它与该is_integer()方法有关,但我不太确定.
谢谢!
所以在jquery中,如果我想在.test单击中定位类中的div,我使用以下代码:
$('.test div').click(function(){
//do something
});
Run Code Online (Sandbox Code Playgroud)
但如果"做某事"部分需要一个this参数,我似乎无法获得相同的效果.所以我想说我希望在任何div中制作所有粗体文本,并且test淡出.我必须做这样的事情:
$('.test div').click(function(){
$(this ' b').animate({
opacity:toggle
},500);
});
Run Code Online (Sandbox Code Playgroud)
但那是无效的代码.那么我如何定位thisJquery选择器中的特定元素?
所以我有一个递归反转颜色的函数.这是代码:
function invert(id,what){
var color = $(id).css(what);
var matchColors = /rgb\((\d{1,3}), (\d{1,3}), (\d{1,3})\)/;
var match = matchColors.exec(color);
var r = (255 - match[1]).toString() + ",";
var g = (255 - match[2]).toString() + ",";
var b = (255 - match[3]).toString();
answer = 'rgb(' + r + g + b + ')' ;
$(id).css(what,answer);
};
Run Code Online (Sandbox Code Playgroud)
所以基本上我有一个可以在很多实例中调用的函数(特定id的点击,悬停在特定的类上等),我不知道所有这些.但我需要知道每次调用此函数.如何设置一个外部代码行来设置一个变量,该变量等于调用函数的次数?
我理解为什么使用拆分创建空白很重要,这要归功于这个问题,但有时候有必要不抓住它们.
假设你解析了一些css并获得了以下字符串:
s1 = 'background-color:#000;color:#fff;border:1px #ccc dotted;'
s2 = 'color:#000;background-color:#fff;border:1px #333 dotted'
Run Code Online (Sandbox Code Playgroud)
两者都是有效的CSS,即使字符串末尾缺少分号.拆分字符串时,您会得到以下内容:
>>> s1.split(';')
['background-color:#000', 'color:#fff', 'border:1px #ccc dotted', '']
>>> s2.split(';')
['color:#000', 'background-color:#fff', 'border:1px #333 dotted']
Run Code Online (Sandbox Code Playgroud)
额外的分号在列表中创建一个空白项.现在,如果我想进一步操作,我需要测试每个列表的开头和结尾,如果它们是空白的话就删除它们,这不是那么糟糕,但似乎可以避免.
是否有一个方法基本上相同split但不包括尾随空白项目?或者只是一种方法来删除那些就像字符串必须strip删除尾随空格
我基本上有一个删除东西的按钮,代码是:
$(document).on('click','.btn',function(){
//code here
//$t is the item to delete
$t.remove();
});
Run Code Online (Sandbox Code Playgroud)
我现在想后执行下面的代码remove或on已完成:
if($('#bookmarks').is(':empty')){
$('#bookmarks').css('visibility','hidden');
}
Run Code Online (Sandbox Code Playgroud)
我尝试将其添加到.on:
$t.on("remove", function () {
if($('#bookmarks').is(':empty')){
$('#bookmarks').css('visibility','hidden');
}
});
Run Code Online (Sandbox Code Playgroud)
但那没用.那么在完全删除项目后如何执行该功能呢?
假设我有两个可互换的字符串,就像一个完整的单词,它的缩写:'max'和'maximum'
我想设置它以便它们响应相同,例如,如果我有以下字典:
d = {'max':10,'a':5,'b':9}
Run Code Online (Sandbox Code Playgroud)
d['maximum'] 将返回 10
甚至远程可能吗?
注意:
这两个字符串可以是'dog'和'cat',它们不必相关.
我问的是,如果我可以这样做:
a = 'a' or 'b'
Run Code Online (Sandbox Code Playgroud)
这样两个字符串是可以互换的.我确实理解上面的语法不正确,我只是好奇,如果有可能的话
所以我正在写一个程序,有人从牌组中取出牌.所以我写了一个while循环,循环并检查是否有超过4个随机创建的卡,如果有,更改卡.
这是我的代码:
String card = (int)Math.ceil(Math.random() * 13) + " ";
String[] used2 = used.split(" ");
//used is a String like "12 3 7 8 4 ... # etc" such that it is all the previously drawn cards.
boolean checking = true;
boolean isIn = false;
int in = 0;
int check = 0;
while(checking){
for(int q = 0; q < used2.length; q++){
check += 1;
if(card.equals(used2[q] + " ")){
in += 1;
if(in == 4){
System.out.println(check); //debugging line
check …Run Code Online (Sandbox Code Playgroud)